嘿伙计们我正在尝试在活动记录模型中进行条件验证。
基本上我尝试的是,如果bill_due_amount大于零,则exists_of date应该在那里,否则bill_due_amount== zero
则不需要验证日期。
现在我能想到这个。
validates_presence_of :next_fup_date, :if => :check_due_amount_of_bill
def check_due_amount_of_bill
self.bill_due_amount >= 1
end
我收到错误
未定义的方法`> ='为nil:NilClass
我该如何进行此条件验证?提前谢谢:)
答案 0 :(得分:2)
您可以尝试这样
validates_presence_of :next_fup_date, :if => "bill_due_amount >= 1"
attr_accessor :bill_due_amount
(或)
validates_presence_of :next_fup_date, :if => :check_due_amount_of_bill
attr_accessor :bill_due_amount
def check_due_amount_of_bill
bill_due_amount >= 1
end
您必须指定attr_accessor。
答案 1 :(得分:2)
问题是bill_due_amount
是nil
。因此,在您的方法中,您必须先检查nil
,然后检查>= 1
:
def check_due_amount_of_bill
self.bill_due_amount.present? && self.bill_due_amount >= 1
end