加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 21:43:12 所属栏目:百科 来源:网络整理
导读:我有一个表单(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]) 这
我有一个表单(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) %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读