我正在寻找“Rails Way”来编写一个验证,将可接受的输入值限制在预定的列表中。
就我而言,我只想接受值“-5”,“ - 2”,“+ 2”,“+ 5”和nil。但是,我认为这是一个普遍的问题:如何在Rails模型中预定义可接受的条目值列表?
谢谢!
答案 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
一起使用
答案 2 :(得分:0)
执行此操作的现代方法如下:
validates :field, inclusion: { in: [ -5, -2, 2, 5 ], allow_blank: true, message: "not an allowable number." }