如何在 Rails 中接收来自一个网站 (url) 的 get 请求,然后保存参数,并使用其他参数(计算/来自数据库)生成另一个网站的新 url,并重定向到该网站?
我对中间的步骤没有问题(例如保存到数据库,接收参数)。主要问题是如何接收 get 请求,并在 Rails 中发送 get 请求。
我根据以下问题看到:How make a HTTP request using Ruby on Rails?我可以使用 Net::HTTP
类。然而,他们似乎专注于从另一个网站请求一些数据,而在这里我们收到来自某个网站的点击并希望重定向到另一个网站。
我的问题是: 1. 如何将人员到达的网址保存为变量(我需要从那里获取参数)? 2. 如何在步骤结束时将用户重定向到新网址(保存、解析新网址等)? 3. 我在哪里执行这两个主要操作?在 Controller 中?这是我的直觉,但是, View 不包含相关的 url 吗?人们所指的相关索引网址在哪里?
最佳答案
也许我不太理解这个问题,但是,假设您的 static_pages#index 正在接收 get 请求:
在你的 StaticPagesController 中:
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_url
和incoming_url_params
将是“lang=es”
希望有帮助
关于ruby-on-rails - 进入 Rails - 接收带参数的 get 请求并重定向它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460001/