ruby-on-rails - 确定您的操作是直接请求还是重定向到?
问题描述
说我在:
example.com/foo
我单击一个转到 的按钮root_path
,通常它是:
example.com/
在接收请求的控制器操作中,确定用户应该被重定向到:
example.com/bar
在接收该请求的控制器操作中,我现在想知道用户是否已通过 重定向root_path
,因此我检查了request.referer
. 但我发现引用者不是example.com/
,而是example.com/foo
。
我检查了该request
对象,但似乎没有重定向请求的路径的痕迹。这是正确的,还是有一个说法?
这是日志:
Started GET "/" for 127.0.0.1 at 2019-05-29 09:40:37 +0200
Processing by HomeController#index as HTML
Parameters: {}
Redirected to https://example.com/bar
Completed 302 Found in 21ms
Started GET "/bar" for 127.0.0.1 at 2019-05-29 09:40:37 +0200
Processing by BarController#index as HTML
Parameters: {}
Completed 200 OK in 285ms (Views: 274.1ms)
我意识到我可以在重定向时添加一个参数,但在此之前我想确保信息不在会话中。
解决方案
例如,您可以使用flash
设置一些自定义属性,例如:redirected_from
:
redirect_to '/foo', flash: { redirected_from: request.path }
您可以稍后在example.com/bar
控制器操作中阅读
推荐阅读
- c++ - 文件中的重复文本
- javascript - 发送带有附件的电子邮件“不是功能错误”
- r - R 使用 na.locf() 正确使用 cross() 函数
- python - Python 请求“没有为主机名找到连接适配器://endpont/endpoint
- node.js - 从 Node.js 打开自解压 zip (.exe)
- jenkins - Jenkins 代理节点上的 Jenkins 共享库脚本
- python - 在Python中循环遍历帧像素的更快方法?
- mysql - Delphi - 不支持 ODBC 驱动程序消息不断弹出
- php - 如何从多个表中获取数据
- reactjs - 升级到 WebPack5 并实现 Jest