【问题标题】:Get in Rails - receive get requests with params and redirect them进入 Rails - 接收带有参数的 get 请求并重定向它们
【发布时间】:2013-05-03 19:46:53
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    在您的 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”

    希望有帮助

    【讨论】:

    • 好的,是的,我想就是这样!那么我根本不需要触摸视图吗?控制器中的所有逻辑(以及数据库部分的模型中)。正确的?谢谢
    • 等等,另一个问题 - 我如何检索 :url_to_be_redirected ?我需要使用的url中有参数
    • 对,这个视图甚至不会被任何人看到
    • @LucyWeatherford 我已经编辑了答案以显示如何解析传入的 url
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 2021-12-25
    • 2016-08-09
    • 2011-01-02
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多