登录后将用户返回上一页(Rails)
问题描述:
在rails 2.3.8站点上,我在每个页面上都有登录链接(将用户带到单独的登录页面)。成功登录后,用户当前被重定向到root用户。相反,我想重定向到他们之前查看的页面。登录后将用户返回上一页(Rails)
我一直在使用request.referer尝试:
redirect_back_or_default(request.referer)
其中redirect_back_or_default:
def redirect_back_or_default(default)
redirect_to(session[:return_to] || default)
session[:return_to] = nil
end
但产生 “拒绝访问” 错误,即使登录成功。
答
,而不是试图重定向到引荐,我会设置会话[:的return_to]
你需要一个能够在所有你的行动身份验证之前运行过滤器之前:
def store_return_to
session[:return_to] = request.url
end
然后改变你的重定向到
redirect_back_or_default()
这看起来不错,你确定他们实际上登录了吗? – Chap 2012-02-28 21:07:40
是的,他们肯定会登录(可以查看先前无法访问的页面,登录链接更改为用户页面链接,登录链接更改为登出等)。即使用户从根用户登录,也会发生错误。 – Exupery 2012-02-28 21:19:10
你可以发布你的会话控制器代码吗? – PhillipKregg 2012-02-28 21:19:25