在rails 4.0.0中,我需要验证我的模型上是否存在attribute_a,模型上是否存在attribute_b。其中一个必须存在,并且它们都不能同时存在。
我该如何编写验证?
答案 0 :(得分:0)
validates_numericality_of :charge, allow_nil: true
validates_numericality_of :payment, allow_nil: true
validate :charge_xor_payment
private
def charge_xor_payment
if !(charge.blank? ^ payment.blank?)
errors.add(:base, "Specify a charge or a payment, not both")
end
end
另一种方式:
a或b姓氏是强制性的
validate :a_or_b
def a_or_b
if a == "Last Name" or a.blank?
errors.add(:a, "cant blank")
errors.add(:b, "cant blank")
end
end