2010-12-31 14 views
0

:link attrが有効かどうかによって誰かがafter_validationロジックを実行する方法を知っているかどうか疑問に思っていますか?レール3のafter_validation処理モデル

validates :link, :uri_check => { :schemes => [:ftp, :http, :https] } 

after_validation :initialize_dependents, :on => :create 

def initialize_dependents 
    #post validation logic here 
end 

ので、代わりの:=>上:作成、多分...

after_validation :initialize_dependents, :if => link.valid? 

問題は、私が唯一の文字列ではなくオブジェクトにアクセスすることができます。

ご協力いただければ幸いです。

おかげ

答えて

0

は、このような:ifをお試しください:

:if => Proc.new { --code here-- } 

または

:if => :my_method? 

def my_method? 
    --code here-- 
end 
+0

こんにちはZabba、ご返信ありがとうございます。検証ロジックの結果にアクセスする方法はありますか?私のコントローラでは、@ link.vaildを使用できますか?私のモデルで(String)リンクを再度検証せずにこれをどのように適用すればよいですか? – seogrady

0

はそれを手に入れました! Observerを作成するだけでした。

class LinkObserver < ActiveRecord::Observer 

    after_validation(model) 
    #logic here 
    end 

end