我一直在瀏覽ActiveRecord源代碼,以瞭解:if => proc_or_method_name
如何在ActiveRecord驗證中工作,但源代碼中僅有:if
的實例在註釋中解釋如何調用該功能。ActiveRecord如何在驗證中實現`:if => ...`
例如,你可以像在模型下面的一行:
validates_presence_of :name, :if => :nameable?
和驗證只有在nameable?
方法返回給定的模型truthy值被檢查。
這個功能在哪裏實際定義,因爲我無法在(Rails2)源代碼中的任何位置找到此行爲?
對不起,花了這麼長的時間回覆。我的意思是Rails2,但除了分離到ActiveModel之外,我認爲這不是一個問題。我用更多的信息更新了這個問題,因爲我給了我錯誤的印象。 – Gareth 2011-01-05 11:53:53