Ruby on Rails复选框不保存数据

时间:2013-10-09 16:14:53

标签: ruby-on-rails ruby checkbox

我有一个复选框

<%= f.check_box :anonymous %>

我的表格中有anonymous列,无论是真还是假。

在html中生成的代码:

 <input name="comment[anonymous]" type="hidden" value="0" />
 <input id="comment_anonymous" name="comment[anonymous]" type="checkbox" value="1" />

现在,由于某种原因,当我添加数据时,如果我的匿名复选框被选中,则不会保存...它不会更改数据库中的数据..除了匿名之外,所有其他字段都会被保存。

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

改为使用#check_box_tag

<%= check_box_tag(:anonymous) %>

来自官方指南:

  

数组参数与check_box帮助程序不兼容。根据   未经检查的HTML规范复选框没有提交任何值。   但是,复选框通常很方便提交   值。 check_box助手通过创建辅助隐藏来伪造它   输入相同的名称。如果取消选中该复选框,则仅隐藏   输入已提交,如果已检查,则两者都已提交但是   复选框提交的值优先。工作时   使用数组参数,这个重复的提交将混淆Rails   因为重复的输入名称是决定何时开始新的   数组元素。最好使用check_box_tag或使用   哈希而不是数组。