Rails / Devise登录后如何重定向到特定页面

时间:2016-08-30 21:19:13

标签: ruby-on-rails ruby devise

loginsignup之后,我希望仅在用户来自特定网页时才将用户重定向到特定网页。

到目前为止我尝试过的方法 - 使用devise

  1. 我在链接中添加了一个参数,并在登录页面中检查了该参数。使用after_sign_in_path_for(resource)中的方法devise,我为该参数创建了一个条件。如果true,页面将重定向到我想要的页面

    链接

    <%= link_to "Login before continuing", new_user_session_path(:registration_process => true)
    

    ApplicationController.rb

    def after_sign_in_path_for(resource)
     if params[:registration_process]
        leads_path  # desired page
     else
       super
     end
    end
    
  2. 这不起作用。

    我不知道使用params是否是最佳选择,因为我想对注册页面做同样的事情。

    非常感谢你。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

轻松!为什么不尝试:

URI(request.referer).path

现在您基本上可以确定您来自的路径。

您还可以在会话中存储您来自的页面。 e.g。

session[:intended_url] = request.url
希望有所帮助。

答案 1 :(得分:0)

试试这个

if resource.class == User && current_user
    user_dashboard_path
else
    super
end

答案 2 :(得分:0)

我认为你应该在你的new_user_session_path表单中传递带有会话路径的params,例如url: session_path(resource_name, :registration_process => true) 之后,您可以使用if params[:registration_process]