CanCan :: AccessDenied的'rescue_from Exception'的例外情况

时间:2013-11-20 07:41:08

标签: ruby-on-rails cancan custom-error-handling

我已经实现了自定义错误处理,并使用此行来解决错误:

rescue_from Exception,
  :with => :render_error

然而,这也是从CanCan :: AccessDenied中抢救出来的,我怎样才能使这个规则例外来拯救'CanCan :: AccessDenied'并发送到root路径并用自定义方法救出一切':render error'?

1 个答案:

答案 0 :(得分:0)

直接从the source

报价
  

处理程序是继承的。从右到左搜索它们   从下到上,向上层次结构。第一类的处理程序   exception.is_a?(klass)成立的是if调用的if,if   任何

所以,你可以这样做:

rescue_from CanCan::AccessDenied, :with => :your_custom_handler
rescue_from Exception, :with => :render_error

请记住,rescue_from调用的顺序很重要。