布尔字段的单选按钮,如何做“假”?

我目前正在尝试在Rails 3中插入一些简单的真/假单选按钮,但我找不到一种方法来使单选按钮插入“false”。

我的代码如下:

  

我已经尝试过:

  • 1/0
  • “1”/“0”
  • 真假
  • “真假”
  • “是”/“否”

但似乎没有什么比值false更合适。 我的字段设置为

 validates_presence_of :accident_free 

当点击“错误”按钮时,我总是收到必须填写的消息。 单击true按钮时,它可以正常工作,但不会识别false。

有谁知道如何正确地做到这一点?

提前致谢

阿恩

就是这个:

http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_presence_of

validates_presence_of()validation指定的属性是否为空(由Object#blank定义?)

如果要validation是否存在布尔字段(实际值为true和false),则需要使用validates_inclusion_of :field_name, :in => [true, false]

这是由于Object#blank的方式? 处理布尔值: false.blank? # => true false.blank? # => true

我尝试使用脚手架和"1""0"示例

 <%= f.radio_button :foo, "0" %> <%= f.radio_button :foo, "1" %> 

他们工作了。

我最近为此找到了另一个解决方案:

 validates_presence_of :accident_free, :if => 'accident_free.nil?' 

这里解释