验证验收不起作用

时间:2014-06-25 18:58:03

标签: ruby-on-rails validation

我有一个具有此类验证规则的模型:

validates :terms, acceptance: true

但是,只有在我明确将terms属性设置为false时,此验证才有效。如果我不触摸此属性(因此它将是nil),验证成功。

user = User.new

user.valid?
=> true

user.terms
=> nil

user.terms = false
user.valid?
=> false

user.terms = true
user.valid?
=> true

默认情况下,如何使此验证失败?

1 个答案:

答案 0 :(得分:1)

验证有一个选项allow_nil: false,如果nil值,则会强制失败。

validates :terms, acceptance: true, allow_nil: false

user = User.new

user.valid?
=> false

user.terms
=> nil