Ruby on Rails:你如何获得以前的URL?

时间:2011-01-10 22:09:11

标签: ruby-on-rails

如何在Rails中获取以前的URL?不是您收到请求的URL,而是之前的URL?

因为我收到了一个AJAX请求,我需要他们当前所在页面的URL(或AJAX之前的URL)。

5 个答案:

答案 0 :(得分:81)

尝试使用HTTP_REFERER

在Rails中:request.referrerrequest.headers["HTTP_REFERER"]

答案 1 :(得分:16)

使用

<%= url_for(:back) %>
# if request.env["HTTP_REFERER"] is set to "http://www.example.com"
# => http://www.example.com

here is more details.

答案 2 :(得分:6)

在Web应用程序中,没有以前的URL。 http协议是无状态的,因此每个请求都是相互独立的。

您可以使用Javascript代码发送请求,然后使用请求发送当前网址。

答案 3 :(得分:3)

刚刚遇到这个问题,它与我目前正在做的事情有关。

我之前使用ajax向导样式应用程序时使用的一个简单解决方案是存储两个包含先前和当前请求的会话变量(包含所有参数)。 我只是将这两行添加到我的应用程序控制器

session[:previous_request_url] = session[:current_request_url]
session[:current_request_url] = request.url

答案 4 :(得分:2)

http://railscasts.com/episodes/246-ajax-history-state - &gt;非常适合ajax

http://ethilien.net/archives/better-redirects-in-rails/ - &gt;您可以根据需要在会话中输入任意数量的URL。