Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用未选中的复选框更新记录?_Ruby On Rails_Ruby On Rails 4_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 如何使用未选中的复选框更新记录?

Ruby on rails 如何使用未选中的复选框更新记录?,ruby-on-rails,ruby-on-rails-4,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 4,Ruby On Rails 5,我在前端有三行复选框 当我检查一些值,然后将参数传递给控制器时,它们看起来像数字。比如说, "service_attributes"=>{"id"=>1, "simplicity"=>"1", "convenience"=>"3", "atmosphere"=>"5"} 每次我更改任何一行上的值时,记录都会更新,但是当我取消选中选项时,参数不会被传递 "service_attributes"=>{"id"=>1} 什么也没发生。记录保留旧值 如何才能

我在前端有三行复选框

当我检查一些值,然后将参数传递给控制器时,它们看起来像数字。比如说,

"service_attributes"=>{"id"=>1, "simplicity"=>"1", "convenience"=>"3", "atmosphere"=>"5"}
每次我更改任何一行上的值时,记录都会更新,但是当我取消选中选项时,参数不会被传递

"service_attributes"=>{"id"=>1}
什么也没发生。记录保留旧值

如何才能在取消选中复选框时使记录更新为0值。例如:

<Service id: 1, simplicity: 0, convenience: 0, atmosphere: 2, user_id: 1>

您需要添加另一个字段,该字段将值false传递给控制器

<input name="service_attributes[simplicity]" type="hidden" value="0" />
<input checked="checked" type="checkbox" id="service_attributes_ simplicity" name="service_attributes[simplicity]" value="1" />

或者您也可以直接使用。

谢谢您,杰里米!很高兴我能帮忙!