使用Rails中的GET参数为外部站点创建URL

Ale*_*tie 23 get ruby-on-rails ruby-on-rails-3

我在Rails中发了一条推文.我需要生成的URL看起来像这样:

http://twitter.com/share?url=http%3A%2F%2Fexample.com&text=Hello%20World
Run Code Online (Sandbox Code Playgroud)

但有点复杂.基本上是一个附加了GET参数加载的URL

使用Rails的助手之一来生成这个链接会很不错,例如:

url_for("http://twitter.com/share", :url => "http://example.com", :text => "Hello world")
Run Code Online (Sandbox Code Playgroud)

但我没有发现任何有效的东西.有人有主意吗?

Bri*_*ong 69

您可以to_query在rails中调用Hash来处理url编码等.所以可能是这样的:

params = {
  :a => "http://google.com",
  :b => 123
}
url = "http://example.com?#{params.to_query}"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你发布这个,它只是帮我修复了一个噩梦 (2认同)
  • @msj这是因为Ruby字符串插值不适用于单引号,因为单引号不会被解析.换句话说,由于Ruby,#{}不会在单引号中进行插值. (2认同)