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

时间:2011-01-18 23:02:15

标签: ruby-on-rails validation ruby-on-rails-3

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

就我而言,我只想接受值“-5”,“ - 2”,“+ 2”,“+ 5”和nil。但是,我认为这是一个普遍的问题:如何在Rails模型中预定义可接受的条目值列表?

谢谢!

3 个答案:

答案 0 :(得分:20)

validates_inclusion_of应该有效。例如:

  validates_inclusion_of :attr, :in => [-5, -2, 2, 5], :allow_nil => true

答案 1 :(得分:11)

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

validates_inclusion_of :field, :in => %w(-5 -2 2 5), :allow_nil => true

您可能还想与validates_numericality_of

一起使用

答案 2 :(得分:0)

铁路3 +

执行此操作的现代方法如下:

validates :field, inclusion: { in: [ -5, -2, 2, 5 ], allow_blank: true, message: "not an allowable number." }