ruby-on-rails - 进入 Rails - 接收带参数的 get 请求并重定向它们

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

如何在 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_urlincoming_url_params 将是“lang=es”

希望有帮助

关于ruby-on-rails - 进入 Rails - 接收带参数的 get 请求并重定向它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460001/

相关文章:

java - DTO 转换层

ruby-on-rails - 如何以敏捷的方式部署 Web 应用程序

ruby-on-rails - 生产中的首选日志级别

ruby-on-rails - 锁轨确认盒子 Action

ruby-on-rails - 你怎么能强制验证嵌套模型的所有字段,即使它们没有改变? ( rails 3.1)

ruby-on-rails - ActiveRecord,has_many :through,与STI的多态关联

ruby-on-rails - 时间不在 heroku 中更新

c++ - 防止 QTable 在编辑时选择所有文本

ruby-on-rails - 在 RedHat linux 机器上安装 RubyOnRails

cocoa - 在 Cocoa 中正确设计模型 Controller ?