登录后将用户返回上一页(Rails)

在rails 2.3.8站点上,我在每个页面上都有登录链接(将用户带到一个单独的登录页面)。 成功登录后,用户当前被重定向到root。 相反,我想重定向到他们以前查看的页面。

我尝试过使用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]

您需要在对所有操作进行身份validation之前运行的beforefilter:

 def store_return_to session[:return_to] = request.url end 

然后将您的重定向更改为

 redirect_back_or_default()