我有一个simple_form
,它有一个布尔属性的下拉列表。
<option value="0">None</option>
<option value="1">Yes</option>
这是提交布尔属性的正确方法,还是应该将其作为"true"
/ "false"
提交?
我的模型似乎不接受1
为true
,似乎......
答案 0 :(得分:1)
使用值true/false
应该适用于布尔属性。
所以html就像:
<option value="false">None</option>
<option value="true">Yes</option>
或使用rails helper:
= f.select your_attribute_name, [['None', false], ['Yes', true]]
答案 1 :(得分:0)
我建议使用带有简单设置switch javascript syntax
,as: :boolean
的复选框或单选按钮,这样可以让用户和任何可能最终与您合作的开发人员更加清楚。
至于在下拉列表中使用布尔值,你总是可以在模型中添加一个before_save回调来处理这个属性,它首先将传入的0或1转换为真/假。