rails redirect_to error没有路由匹配

时间:2016-11-03 08:16:47

标签: ruby devise cancan ruby-on-rails-5 cancancan

我尝试重定向到登录页面或根页

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_pathmain_app.root_path工作正常。 我总是在没有main_app的情况下完成它并且它曾经工作过,我不确定为什么现在我需要在路径之前使用main_app,但是它可以工作。

0 个答案:

没有答案