【发布时间】:2014-01-06 14:01:02
【问题描述】:
我正在尝试验证属性是否为布尔值,即 true 或 false。
来自我所期望的 Rails 指南
validates :new_out_of_stock, inclusion: { in: [true, false] }
工作,但它接受非布尔值(例如“Hi”)为有效:
irb> ip = ItemPrice.new
irb> ip.new_out_of_stock = "Hi"
=> "Hi"
irb> ip.valid?
=> true
irb> ip.errors.messages
=> {}
正确拒绝nil,接受真假。
我在互联网上阅读的所有文档都说这是验证布尔属性的正确方法。为什么它不起作用?
编辑:这是类定义:
class ItemPrice < ActiveRecord::Base
belongs_to :item, counter_cache: true
validates :new_out_of_stock, inclusion: { in: [true, false] }
end
【问题讨论】:
标签: ruby-on-rails validation activerecord rails-activerecord