2

我有一个复选框

<%= 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" />

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

可能是什么问题?

4

1 回答 1

1

改用#check_box_tag

<%= check_box_tag(:anonymous) %>

来自官方指南:

数组参数不能很好地与 check_box 帮助器配合使用。根据 HTML 规范,未选中的复选框不提交任何值。然而,复选框总是提交一个值通常很方便。check_box 助手通过创建一个具有相同名称的辅助隐藏输入来伪造这一点。如果未选中复选框,则仅提交隐藏的输入,如果选中,则两者都已提交,但复选框提交的值优先。当使用数组参数时,这种重复提交会使 Rails 感到困惑,因为重复的输入名称是它决定何时开始新数组元素的方式。最好使用 check_box_tag 或使用哈希而不是数组。

于 2013-10-09T16:20:49.947 回答