使用了关注
我有两个领域的年龄和年龄
period can be (0,1,2)
enum period: %w(evergreen,long_term,short_term)
age can be (0,1)
enum age: %w(long_term, evergreen)
如果年龄是长期的,那么就无法从时期中选择常青树,存在并不总是如此
如何在带有自定义消息的Rails中添加此类验证 “如果年龄长,则不能选择常绿” 我正在尝试
validates :period, if: :selection_rule?
def selection_rule
return if age == long_term && period != evergreen
end
进行这种验证的正确方法应该是什么?
答案 0 :(得分:0)
您可以在Rails模型中添加自定义验证错误消息。
validate :age_period
def age_period
errors.add(:period, "can't be selected for this age group") if age == long_term && period != evergreen
end
答案 1 :(得分:0)
出于关注,您可以尝试以下操作:
included do
validate :age_period
end
private
def age_period
errors.add(:period, "can't be selected if age is long_term") if age == long_term && period == evergreen
end