Rails验证:将输入限制为特定值

And*_*rew 14 validation ruby-on-rails ruby-on-rails-3

我正在寻找"Rails Way"来编写一个验证,将可接受的输入值限制在预定的列表中.

在我的情况下,我只想接受值"-5"," - 2","+ 2","+ 5"和零.但是,我认为这是一个普遍的问题:如何在Rails模型中预定义可接受的条目值列表?

谢谢!

小智 21

validates_inclusion_of应该有效.例如:

  validates_inclusion_of :attr, :in => [-5, -2, 2, 5], :allow_nil => true
Run Code Online (Sandbox Code Playgroud)


Pet*_*own 11

您希望将validates_inclusion_of:in:allow_nil选项一起使用.

validates_inclusion_of :field, :in => %w(-5 -2 2 5), :allow_nil => true
Run Code Online (Sandbox Code Playgroud)

您可能还想与validates_numericality_of一起使用