2

我正在开发一个允许用户浏览网站并从任何页面登录的应用程序(登录链接在公共标题中)。一旦成功登录,用户当前会从登录页面重定向到 root_url。

重定向到原始页面会更友好。我试图将原始页面的命名路由存储到会话中,但那些似乎是对象,因此无法通过。此外,并非所有路由都带有命名助手。另一方面,当我将文字路径作为字符串传递给redirect_to 时,例如'orders/index',Rails 将/action 解释为id 参数并出错。

会是 Rails 的方式来做到这一点吗?谢谢!

4

2 回答 2

5

request.referrer您可以通过在控制器内部使用来获取用户来自的页面的 URL 。

于 2013-07-18T21:15:53.290 回答
1

(Rails 5 更新)您可以使用 redirect_back 将用户返回到他们刚刚来自的页面。

redirect_back(fallback_location: root_path)

此方法需要您设置回退位置,因为该位置是从浏览器中提取的,并且并不总是保证会设置。

有关更多信息,请参阅导轨指南redirect_back

于 2018-08-14T17:36:24.027 回答