0

我想将用户重定向到他登录之前访问的最后一个 URL。

我怎么做?

我尝试了什么:

在我的应用程序控制器中添加了 before_filter:

before_filter :store_location

def store_location
    session[:user_return_to] = request.fullpath
end 

但后来我也有这个:

  def after_sign_in_path_for(resource)
    me_path
  end

我很难理解这些是如何协同工作的。

你能帮我吗?

4

1 回答 1

1

在 Devise Wiki 上查看这篇文章:

在你的情况下,我认为这样定义after_sign_in_path_for会很好:

def after_sign_in_path_for(resource)
  session[:user_return_to] || me_path
end

此外,像这样过滤/users路径更安全:

def store_location
  session[:user_return_to] = request.fullpath || unless request.fullpath =~ /\/users/
end

因为此方法也会在用户退出时触发,在这种情况下,您显然不想将它们重定向回 /users 页面。

于 2013-04-23T04:14:34.290 回答