2011-07-22 52 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 

它會重定向到的頁面或資源發出請求來了,會顯示警告信息。