首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Ruby或Rails从URL中提取URL参数?

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

Stack Overflow用户
提问于 2010-03-23 22:00:13
回答 10查看 126.5K关注 0票数 149

我有一些URL,比如

代码语言:javascript
复制
http://www.example.com/something?param1=value1&param2=value2&param3=value3

我想从这些URL中提取参数,并将它们放入Hash中。显然,我可以使用正则表达式,但我只是想知道是否有更简单的方法来使用Ruby或Rails。我在Ruby模块URI中没有发现任何东西,但也许我遗漏了一些东西。

实际上,我需要一个可以做到这一点的方法:

代码语言:javascript
复制
extract_parameters_from_url("http://www.example.com/something?param1=value1&param2=value2&param3=value3")
#=> {:param1 => 'value1', :param2 => 'value2', :param3 => 'value3'}

你有什么建议吗?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-03-23 22:20:12

我认为您想要将任何给定的URL字符串转换为散列?

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

代码语言:javascript
复制
require 'cgi'

CGI::parse('param1=value1&param2=value2&param3=value3')

返回

代码语言:javascript
复制
{"param1"=>["value1"], "param2"=>["value2"], "param3"=>["value3"]}
票数 177
EN

Stack Overflow用户

发布于 2010-07-10 13:46:47

我发现自己最近的一个项目也需要同样的东西。在Levi的解决方案的基础上,这里有一个更干净更快的方法:

代码语言:javascript
复制
Rack::Utils.parse_nested_query 'param1=value1&param2=value2&param3=value3'
# => {"param1"=>"value1", "param2"=>"value2", "param3"=>"value3"}
票数 169
EN

Stack Overflow用户

发布于 2012-02-22 23:56:05

只是改进了上面的Levi答案-

代码语言:javascript
复制
Rack::Utils.parse_query URI("http://example.com?par=hello&par2=bye").query

对于类似于上述url的字符串,它将返回

代码语言:javascript
复制
{ "par" => "hello", "par2" => "bye" } 
票数 108
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2500462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档