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

arn*_*lja 21 forms activerecord ruby-on-rails ruby-on-rails-3

我目前正在尝试在Rails 3中插入一些简单的真/假单选按钮,但我找不到一种方法来使单选按钮插入"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>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过:

  • 1/0
  • "1"/"0"
  • 真假
  • "真假"
  • "是"/"否"

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

validates_presence_of :accident_free
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢

阿恩

nop*_*ole 54

就是这个:

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" %>
Run Code Online (Sandbox Code Playgroud)

他们工作了.

  • 还有一个评论:它更好地与"true"/"false"一起工作,因为当验证失败时,radio_buttons会被正确预选. (8认同)