验证值是否在某个范围内,例如1 <= val <= 2

Yug*_*dle 22 ruby activerecord ruby-on-rails-3

我想验证一个数字:value在1或2之内

validates :value, :format => { :with => /1|2/, :message => "Select number.." }
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码在验证时失败了 value == 1

请确保您的解决方案允许我添加验证消息.

rub*_*iii 16

您正在寻找validates_inclusion_of:

validates_inclusion_of :value, :in => [1, 2],
  :message => "Select one of %{value}"
Run Code Online (Sandbox Code Playgroud)

您还可以使用(相当新的)shothand表单和Range而不是Array:

validates :value, :inclusion => { :in => 1..2 }
Run Code Online (Sandbox Code Playgroud)


loo*_*non 13

如果你想让它成为1和2之内的数字(1.5,1.6839749等)呢

validates_numericality_of :value, :greater_than_or_equal_to => 1, :less_than_or_equal_to => 2, :message => "blah"
Run Code Online (Sandbox Code Playgroud)

可能不是你想要的,但值得注意的是,