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

标签 ruby-on-rails-3 forms model checkbox update-attributes

我在表单( 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])

这仅在片刻内起作用,当我选中一些复选框时 - 发送它们,它们将被保存。没关系。
但是当我取消选中所有复选框时 - 发送表单 - 所以什么也没发生,在数据库表中不会设置值 0 在列...

你能给我任何提示,如何解决它?

提前谢谢你

最佳答案

发生这种情况是因为未选中的复选框不会向服务器发送任何值。为了规避这个,Rails 提供了 check_box helper,它生成这样的代码:

<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]', 1, (@data.model_name.column_name == 1 ? true : false) %>

关于ruby-on-rails-3 - Rails 3 - 如何保存(取消)选中的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9405189/

相关文章:

python - Django UserManager create_user 失败, 'NoneType' 对象不可调用

model - 在spacy中,如何使用自己在gensim中创建的word2vec模型?

javascript - Rails 销毁 js.erb

jquery - 使用 jQuery 和 Rails 3 的 button_to_remote

asp.net - 从 ASPX 中的 URL 检索 GET 变量

html - 表单 target=iframe 正在重定向而不是加载

php - 检查 Laravel 5.5 模型事件中的属性是否已更改

ruby-on-rails - Rails,在模型中有没有办法提供自上次更新以来的不同?

ruby-on-rails - Rails - 如何在代码中检查开发者模式或生产模式

forms - 在 Angular 中同时实时显示 Reactive 表单元素