为什么rails 2.1没有使用rescue_from捕获异常?

时间:2011-02-07 17:42:42

标签: ruby-on-rails custom-exceptions

在我的ApplicationController中,我有

rescue_from StorageExceptions::AuthorizationFailed, :with => handle_auth_error

def handle_auth_error
  redirect_to error_path(403)
end

但代码没有捕获此错误。我已经检查了被捕获的是NameError,并带有消息:“uncaught throw`StorageExceptions :: AuthorizationFailed'”

为什么会这样,我怎样才能发现实际错误?

1 个答案:

答案 0 :(得分:0)

我无法在我的Rails(2.3.8)应用中使用rescue_from ..., :with => ...语法 - 我使用替代rescue_from ... do ... end形式解决了这个问题:

rescue_from(ActionController::InvalidAuthenticityToken) do |e|
    #TODO: Flash something?
    logger.error "! Invalid authenticity token when accessing #{request.url}"
    render(:template => 'sessions/new', :layout => 'pre_login')
end

我从来没有弄清楚为什么第一种形式从未发挥作用,但是......

希望这有帮助!