如何使用Ruby或Rails从URL中提取URL参数?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (39)

我有一些网址,例如

http://www.example.com/something?param1=value1&param2=value2&param3=value3

我想从这些URL中提取参数并将它们放入哈希中。显然,我可以使用正则表达式,但我只是想知道是否有更容易的方法来做到这一点与Ruby或Rails。我没有在Ruby模块中找到任何东西,URI但也许我错过了一些东西。

事实上,我需要一个方法来实现以下内容:

extract_parameters_from_url("http://www.example.com/something?param1=value1&param2=value2&param3=value3")
#=> {:param1 => 'value1', :param2 => 'value2', :param3 => 'value3'}

提问于
用户回答回答于

你想把任何给定的URL字符串变成HASH?

可以尝试http://www.ruby-doc.org/stdlib/libdoc/cgi/rdoc/classes/CGI.html#M000075

require 'cgi'

CGI::parse('param1=value1&param2=value2&param3=value3')
{"param1"=>["value1"], "param2"=>["value2"], "param3"=>["value3"]}
用户回答回答于

这是一个更清洁,更快速的方法:

Rack::Utils.parse_nested_query 'param1=value1&param2=value2&param3=value3'
# => {"param1"=>"value1", "param2"=>"value2", "param3"=>"value3"}

扫码关注云+社区