ruby-on-rails-3 – Rails 3 – 如何保存(取消)选中的复选框?

我有一个表单(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) %>

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...