use*_*621 11 forms checkbox model update-attributes ruby-on-rails-3
我有一个表单(form_tag)几个复选框,如下所示:
<%=check_box_tag 'model_name[column_name]', 1, (@data.model_name.column_name == 1 ? true : false)%>
Run Code Online (Sandbox Code Playgroud)
并更新它们像:
variable = ModelName.find(params[:id])
variable.update_attributes(params[:model_name])
Run Code Online (Sandbox Code Playgroud)
这只是片刻,当我检查一些复选框 - 发送它们,它们将被保存.没关系.但是当我取消选中所有复选框 - 发送表单 - 所以什么也没发生,在DB表中不会在列中设置值0 ...
你可以给我任何提示,如何解决?
先感谢您
ibl*_*lue 22
发生这种情况是因为未选中的复选框不会向服务器发送任何值.绕过这个Rails提供了check_box
帮助器,它生成如下代码:
<input type="hidden" name="model[attr]" value="0" />
<input type="checkbox" name="model[attr]" value="1" />
Run Code Online (Sandbox Code Playgroud)
或者,插入隐藏字段hidden_field_tag
:
<%= hidden_field_tag 'model_name[column_name]', '0' %>
<%= check_box_tag 'model_name[column_name]', 1, (@data.model_name.column_name == 1 ? true : false) %>
Run Code Online (Sandbox Code Playgroud)