【问题标题】:Generating an external url in rails在 Rails 中生成外部 url
【发布时间】:2009-09-25 22:25:23
【问题描述】:

我想在我的 rails 应用程序中构建一个指向另一个没有运行 rails 的服务器的 url。使用url_for 几乎可以满足我的要求,但它需要一个我不需要的控制器键(重定向到外部站点上的顶级页面)。

我想这样做的原因是我有一个干净的构造一个带有参数散列的 url(其中一些是在运行时确定的)。

【问题讨论】:

  • 爱上 Google - 在您提出问题 1 小时后,这是“rails generate external url”的第 6 个结果。

标签: ruby-on-rails


【解决方案1】:

您可以在 Rails 中的 Hash 上调用 to_query,这将处理 url 编码等。所以可能是这样的:

params = {
  :a => "http://google.com",
  :b => 123
}
url = "http://example.com?#{params.to_query}"

【讨论】:

    【解决方案2】:

    你觉得URI::HTTP怎么样?

    【讨论】:

    • 不幸的是,我无法像我希望的那样传入查询字符串,但它已经足够接近了。我觉得使用HTTPS::buildto_s 方法返回一个https uri,而使用request_uri 方法返回一个http uri 有点奇怪。
    • 我不知道哈希到参数问题的简单解决方案。如果您不需要嵌套参数,您可以创建一个简单的函数来执行此操作。 URI::HTTPS.request_uri() 函数只返回路径和查询字符串。之前的一切都被忽略了。您可以在 Rails 控制台中轻松尝试。
    • Rails 在Hash 上提供了一个to_query 方法,可以与URI::HTTP.build 上的query 参数一起使用,这可能会做你想做的事。
    猜你喜欢
    • 1970-01-01
    • 2014-09-20
    • 2013-10-07
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多