我想验证数字:value
是否在1或2
validates :value, :format => { :with => /1|2/, :message => "Select number.." }
但是,上述代码在value == 1
请确保您的解决方案允许我添加验证消息。
答案 0 :(得分:34)
validates :value, :inclusion => {:in => [1,2]}
请参阅http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of
答案 1 :(得分:16)
您正在寻找validates_inclusion_of:
validates_inclusion_of :value, :in => [1, 2],
:message => "Select one of %{value}"
你也可以使用(相当新的)射击形式和范围而不是数组:
validates :value, :inclusion => { :in => 1..2 }
答案 2 :(得分: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"
可能不是你想要的,但值得注意,
答案 3 :(得分:0)
如果您使用inclusion
,则错误消息并不正确:
["Value is not included in the list"]
使用
validates :value, presence: true, numericality: { greater_than_or_equal_to: 1, less_than_or_equal_to: 10 }
有关更好的错误消息,例如:
["Value must be less than or equal to 2"]