2014-02-12 40 views
1

我有f.association :employeef.association :statuscode滑軌驗證字段值,除非另一個字段具有值

它發生在第一的StatusCode =「未分配」,而僱員字段被分配一個僱員一個Rails形式。

所以,我的用戶輸入相關聯的員工,我想的StatusCode爲大於1

我嘗試這樣做:

validates :statuscode_id, :numericality => { :greater_than => 1 }, :unless => :employee_id.blank? 

但是,我得到:

undefined method `validate' for false:FalseClass 

感謝您的幫助!

回答

0

嘗試使用lambda

validates :statuscode_id, :numericality => { :greater_than => 1 }, :unless => lambda { |o| o.employee_id.blank? } 
+0

謝謝 - 我喜歡這種方法。 – Reddirt

+0

你能解釋爲什麼lambda需要在這裏? – IvRRimUm

0

您正在尋找這樣的事情:

validates :statuscode_id, :numericality => { :greater_than => 1 }, :if => :employee_id_present? 

private 

def employee_id_present? 
    employee_id.present? 
end 

...或任何其他2其他獨特的方式,有人說這樣做的。 :)

+0

感謝您的幫助 - 工程。 – Reddirt

相關問題