【发布时间】:2014-11-21 11:49:45
【问题描述】:
在我的 rails 3 应用程序中,我使用的是 devise 3.2.4 和 cancancan 1.9.2。我的问题是可以正常工作的可超时设计模块,但我无法挽救正确的异常,以便向用户显示正确的通知。
我的 application_controller.rb 包含:
rescue_from Exception do |exception|
unless Rails.env.production?
raise exception
else
redirect_to :back, :flash => { :error => exception.message }
end
end
# https://github.com/ryanb/cancan/wiki/exception-handling
rescue_from CanCan::AccessDenied do |exception|
flash[:error] = exception.message
respond_to do |wants|
wants.html { redirect_to main_app.root_url }
wants.js { render :file => "shared/update_flash_messages" }
end
end
每当会话到期时,我都可以通过消息挽救一个通用的 CanCan::AccessDenied 异常您无权访问此页面,但我想捕获一个可超时的 Devise(我猜)异常,以便我可以为此显示默认设计消息:您的会话已过期。请重新登录以继续
有什么想法吗?
【问题讨论】:
-
我也有同样的问题...
标签: ruby-on-rails ruby-on-rails-3 devise cancancan