我想将用户重定向到他登录前访问过的最后一个网址。
我该怎么做?
我尝试了什么:
在我的应用程序控制器中添加了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
我努力了解这些如何协同工作。
你能帮忙吗?
答案 0 :(得分: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页面。