2014-05-23 95 views
1

我需要控制用户登录后的重定向。我发现这个问题的许多答案指向after_sign_in_path_for方法。所以我把它添加到我的application_controller.rb中:设计方法after_sign_in_path_for does not work

def after_sign_in_path_for(resource_or_scope) 
    raise "SIGN IN TEST" 
    dashboard_path 
end 

检查它是如何工作的。但是,无论何时登录,都不会引发异常,只会忽略方法。我该怎么做才能使用它?

编辑 的要求,routes.rb中的片段

devise_for :users, :controllers => { 
    :sessions => "user/sessions", 
    :registrations => "user/registrations", 
    :passwords => 'user/passwords' 
    } 
+1

此方法是否在登录后运行?提高“登录路径”需要结束“标记 – Debadatt

+0

否它不会运行后登录,这就是我的问题的整个点 – Leo

+0

你在哪里覆盖这种方法? – RSB

回答

2

official docs for this are here

-

我们用这个成功是这样的:

#app/controllers/application_controller.rb 
Class ApplicationController < ActionController::Base 
    def after_sign_in_path_for(resource) 
     dashboard_path 
    end 
end 

-

如果您的方法未被调用,您需要先删除RAISE调用,然后重新启动服务器再试。如果这不起作用,该问题可能与如何Devise工作系统

。如果你可以尝试删除RAISE &让我们知道结果,这将是一个很大的帮助!


更新

更好的是你使用users/sessions控制器。这里是我们的:

​​
+1

我删除了提升,重新启动服务器,只需登录,没有新的已被注意到 – Leo

+0

感谢哥们。向我们展示你的'routes.rb'文件? –

+0

我不能真的给整个文件,因为我不是所有者,但在一秒钟内我会更新我的问题与片反映登录 – Leo