Rails 3 get request referrer
我正在使用Rails 3.0.9、Ruby 1.9.2、Designe1.3.4,并且需要在DesigneSessionNew视图中访问请求URL参数,尽管我认为这是一个Rails请求处理的一般问题。本质上,请求被发送到一个设计认证资源,该资源将用户重定向到登录屏幕。在登录视图中,我需要访问请求URL,例如,这是在开始时调用的请求URL
1
| http://mysite.com/article/5?type=blah |
在重定向登录页面中,我需要访问该URL,任何人都知道我该怎么做吗?
您可以在控制器中使用request.referer或request.env['HTTP_REFERER']来获取引用者URL。
- 尝试过了,没用,它显示了登录屏幕的URL。我指的是会话控制器。如果我把代码放在articles控制器中,它在登录验证之后才会被执行。
- 如果我正确理解您的需求,那么您希望将用户重定向到登录操作之前所在的页面。当用户单击登录时,为什么不简单地在会话中保存重定向URL?
- 到登录页面的重定向已经处理好了,我需要的是在登录页面上请求用户凭据,我需要访问原始的请求URL,希望这更有意义。我应该澄清,最初的调用来自另一个服务器,而不是浏览器。
- 我想你只需要在将用户重定向到登录页面之前保存引用。当用户成功登录后,将其重定向到存储值。
- 是的,它不起作用,但找到了一个专门设计的解决方案,不过谢谢你的努力。
- 嘿,约翰尼,你能和我们分享一下你找到的解决方法吗?我这里也有同样的东西……谢谢
- stackoverflow.com/questions/2165665/…
我刚发现webrick处理request.referer不正确。但别担心。独角兽处理得很好。我没有在其他服务器上测试它。你应该把这个和你的核对一下。我不认为您使用Webrick作为生产服务器。
- 实际上,Webrick不适用于生产服务器。我还发现了webrick和puma处理request.referrer的方式的不同,这绝对值得检查request.referrer在使用webrick时是否表现得不像预期的那样。