我有一个复选框
<%= 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" />
现在,由于某种原因,当我添加数据时,如果我的匿名复选框被选中,则不会保存...它不会更改数据库中的数据..除了匿名之外,所有其他字段都会被保存。
可能是什么问题?
答案 0 :(得分:1)
改为使用#check_box_tag
:
<%= check_box_tag(:anonymous) %>
来自官方指南:
数组参数与check_box帮助程序不兼容。根据 未经检查的HTML规范复选框没有提交任何值。 但是,复选框通常很方便提交 值。 check_box助手通过创建辅助隐藏来伪造它 输入相同的名称。如果取消选中该复选框,则仅隐藏 输入已提交,如果已检查,则两者都已提交但是 复选框提交的值优先。工作时 使用数组参数,这个重复的提交将混淆Rails 因为重复的输入名称是决定何时开始新的 数组元素。最好使用check_box_tag或使用 哈希而不是数组。