我目前正在尝试在Rails 3中插入一些简单的true / false单选按钮,但我找不到一种方法来使单选按钮插入“false”。
我的代码如下:
<%= f.radio_button :accident_free, true %><label for="auction_accident_free_true">ja</label>
<%= f.radio_button :accident_free, false %><label for="auction_accident_free_false">nein</label>
我已经尝试过:
但似乎没有任何东西可以正确处理false值。我的字段设置为
validates_presence_of :accident_free
并且我总是收到消息,在单击false按钮时必须填写它以继续。单击true按钮时,它可以正常工作,但不会识别false。
有谁知道如何正确地做到这一点?
提前致谢
·阿尔
答案 0 :(得分:53)
就是这样:
http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_presence_of
validates_presence_of()验证指定的属性是否为空(由Object#blank定义?)
如果要验证是否存在布尔字段(实际值为true和false),则需要使用
validates_inclusion_of :field_name, :in => [true, false]
这是由于Object#blank的方式?处理布尔值:
false.blank? # => true
我使用脚手架尝试了您的示例,并在
中使用了"1"
和"0"
<%= f.radio_button :foo, "0" %>
<%= f.radio_button :foo, "1" %>
他们工作了。
答案 1 :(得分:2)