在Rails应用程序中,我有一个带有字符串属性的模型,它只能接受可能值的简短列表。
性别选择就是一个很好的例子:
(using simpleform)
<%= f.input :gender, :collection => [["male"],["female"]], :prompt => "Select" %>
并提供三种状态,“男性”,“女性”和未选择状态。
为了改善用户体验,我们将这个选择字段替换为两个复选框,其值为“男性”和“女性”,由于某些jquery魔法,它再次提供了三个选项。
male / false
false / female
false / false
问题是,第一个复选框的值总是被表单提交上的第二个值覆盖。
现在我可以在客户端使用jquery来处理这个问题,我也可以在服务器上创建一个方法来处理这个问题。但这不是这个问题的目的。
我从未相信我完全理解f.check_box
,check_box object
和check_box_tag
的所有各种功能和用法。是否有一种聪明的方法可以在Rails表单中实现所需的结果,或者我是否在错误的轨道上?