登录后重定向到特定URL

pup*_*eno 11 ruby-on-rails devise

在Devise 1.0中,Rails 2.3的库是否有办法在登录后重定向到特定的URL而不是root_url?

编辑:忘了提它是Devise 1.0

bow*_*ior 21

有可能您的用户在after_sign_in_path被调用之前被重定向.如果用户尝试直接转到受身份验证保护的页面,则会发生这种情况.如果你的root_path('/')通过身份验证保护,这将一直发生.

有关此主题的谷歌小组讨论:

快速而肮脏的解决方案是覆盖stored_location_for以始终nil如此返回:

class ApplicationController < ActionController::Base  
...

  private 
  def stored_location_for(resource_or_scope)
    nil
  end

  def after_sign_in_path_for(resource_or_scope)
    my_favorite_path
  end
end
Run Code Online (Sandbox Code Playgroud)


Sid*_*ane 4

我认为after_sign_in_path_forDevise 中的方法正是您正在寻找的。

在您的 ApplicationController 中定义该方法,它将覆盖 Devise 的默认实现。这是文档指定要做的事情。

详细信息在这里:http://rdoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers :after_sign_in_path_for