我尝试重定向到登录页面或根页
redirect_to new_user_session_path, :alert => exception.message
redirect_to root_path, :alert => exception.message
但两者都返回错误
No route matches {:action=>"new", :controller=>"devise/sessions"}
No route matches {:action=>"index", :controller=>"home"}
当我执行rake路由时,有一个根路径和一个new_user_session(用设计制作)
routes.rb有
devise_for :users, :path => '', :path_names => {:sign_in => 'login', :sign_out => 'logout'}
root 'home#index'
如果我做了
redirect_to '/', :alert => exception.message
它可以工作并进入home #index,但如果我尝试
redirect_to '/login', :alert => exception.message
然后它说localhost not working, localhost redirected too much times
重定向位于application_controller.rb中,用于在cancan中拒绝访问的catch异常
rescue_from CanCan::AccessDenied do |exception|
redirect_to '/', :alert => exception.message
end
编辑:解决方案
如果我在其工作路径前写main_app.
,那么main_app.new_user_session_path
和main_app.root_path
工作正常。
我总是在没有main_app的情况下完成它并且它曾经工作过,我不确定为什么现在我需要在路径之前使用main_app,但是它可以工作。