2

我如何 - 在 Rails 中 - 从一个网站(url)接收获取请求,然后保存参数,并使用其他参数(计算/来自 db)生成另一个网站的新 url,并重定向到它?

我对中间的步骤没有问题(例如保存到数据库,接收参数)。主要问题是如何接收获取请求,并在 Rails 中发送获取请求。

我根据以下问题看到:How make a HTTP request using Ruby on Rails? 我可以使用这个Net::HTTP类。然而,他们似乎专注于从另一个网站请求一些数据,而在这里我们收到来自某个网​​站的点击并希望重定向到另一个网站。

我的问题是: 1. 我如何将这个人来自的 url 保存为变量(我需要从那里得到一个参数)?2. 如何在步骤结束时将用户重定向到新的 url(保存、解析新的 url 等)?3. 我在哪里执行这两个主要操作?在控制器中?这是我的直觉,但是,视图不包含相关的网址吗?人们所指的相关索引网址在哪里?

4

1 回答 1

5

也许我不太了解这个问题,但是,假设您的 static_pages#index 正在接收获取请求:

在您的静态页面控制器中:

def index
  incoming_url = request.referer # this catch the incoming url, including its params
  incoming_url_params = URI(incoming_url).query # this returns an string with the incoming url params
  new_url = do_something_with_the_url_and_its_params_internally(incoming_url, incoming_url_params)
  redirect_to new_url
end

举个例子,某人来自http://www.wikipedia.org?lang=es,那将是incoming_urlandincoming_url_params将是 "lang=es"

希望有帮助

于 2013-05-09T10:55:19.593 回答