我已为less_than
和greater_than
的Rails模型添加了验证,但它们显然相互冲突。
我想确保Rails验证模型上的字段永远不会为0.所以小于0的OR,但不是两者都是因为那是不可能的。
我该怎么做?
答案 0 :(得分:24)
已经有一个名为numericality
http://edgeguides.rubyonrails.org/active_record_validations.html#numericality
class Player < ApplicationRecord
validates :salary, numericality: { other_than: 0 }
end
答案 1 :(得分:4)
validate :non_zero
def non_zero
if self.field_name == 0
self.errors.add(:field_name, "Field can't be zero")
end
end
答案 2 :(得分:0)
validates :field, exclusion: { in: [0] }
https://guides.rubyonrails.org/active_record_validations.html#exclusion
适用于允许nil值的字段;易于测试