我有一个表单(form_tag)几个这样的复选框:
<%=check_Box_tag 'model_name[column_name]',1,(@data.model_name.column_name == 1 ? true : false)%>
并更新它们:
variable = ModelName.find(params[:id]) variable.update_attributes(params[:model_name])
这只能在一会儿,当我检查一些复选框 – 发送他们,他们将被保存.没关系.
但是当我取消选中所有复选框 – 发送表单 – 所以没有发生,在DB表中将不会在列中设置值0 …
先谢谢你
解决方法
这是因为未选中的复选框将不会向服务器发送任何值.为了规避这个Rails提供的
check_box
帮助器,它生成如下代码:
<input type="hidden" name="model[attr]" value="0" /> <input type="checkBox" name="model[attr]" value="1" />
或者,使用hidden_field_tag插入隐藏的字段:
<%= hidden_field_tag 'model_name[column_name]','0' %> <%= check_Box_tag 'model_name[column_name]',(@data.model_name.column_name == 1 ? true : false) %>