进入Rails - 接收带有参数的请求并重定向它们

时间:2013-05-09 10:50:01

标签: ruby-on-rails ruby-on-rails-3 model-view-controller parameters get

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

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

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

我的问题是: 1.我如何将该人所到达的URL保存为变量(我需要从那里获得一个参数)? 2.如何在步骤结束时将用户重定向到新URL(保存,解析新URL等)? 3.我在哪里执行这两项主要行动?在控制器?这是我的直觉,然而,视图是否持有相关网址?人们所指的相关索引网址在哪里?

1 个答案:

答案 0 :(得分:5)

也许我不太了解这个问题,但是,假设你的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_urlincoming_url_params将是“lang = es”

希望有所帮助