2011-07-22 10 views
4

Page.rbActiveRecordのDeleteRestrictionError

has_many :comments, :dependent => :restrict 

この検証は、フラッシュメッセージのようなまたはその他の検証メッセージでそれを表示する方法はあり

PagesController# (ActiveRecord::DeleteRestrictionError) "Cannot delete record because of `dependent comments"` 

を発生させますか。?

答えて

13

使用あなたはまたに対処することができ、私の構文がオフになっている...その例外をキャッチし、ページのベースエラーにエラーメッセージを追加するために/救助を開始し、何かのような...

begin 
    @page.destroy 
rescue ActiveRecord::DeleteRestrictionError => e 
    @page.errors.add(:base, e) 
end 
+0

あなたの構文はお金です! – user664833

3

多くのコントローラでレスキューブロックを開始したくない場合は、アプリケーションコントローラで使用します。

コントローラ/ application_controller.rb

rescue_from ActiveRecord::DeleteRestrictionError do |exception| 
    redirect_to(:back, :alert => exception.message) 
end 

それは要求が来たから、ページまたはリソースにリダイレクトされますと、警告メッセージが表示されます。