我對我的一個模型有以下驗證。目標是驗證first_name,last_name和shop的存在。然後後(但仍然在驗證之前),我想運行我的自定義驗證:狀態。Rails驗證和自定義回調訂購
validates_presence_of :first_name
validates_presence_of :last_name
validates_presence_of :shop
validate :status, :on => :create
def status
do stuff with first_name and last_name
end
但似乎:狀態其它驗證之前運行,所以我得到了零FIRST_NAME等我怎樣才能糾正這個錯誤?
爲什麼你需要按順序運行它們? FWIW Rails每次運行所有驗證,即使已經失敗。 – eirikir
before_create可能會對您有所幫助。 – rakeshp