1

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

rescue_from Exception,
  :with => :render_error

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

4

1 回答 1

0

直接引用源代码

处理程序是继承的。从右到左,从下到上,向上搜索它们。exception.is_a?(klass) 为真的第一个类的处理程序是被调用的处理程序,如果有的话。

所以,你可以简单地这样做:

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

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

于 2013-11-20T07:43:54.060 回答