有没有办法在Rails中通过URL字符串获取查询字符串?
我想传递一个URL字符串:
http://www.foo.com?id=4&empid=6
我怎么才能拿到id
和empid
?
有没有办法在Rails中通过URL字符串获取查询字符串?
我想传递一个URL字符串:
http://www.foo.com?id=4&empid=6
我怎么才能拿到id
和empid
?
如果字符串中有URL,则使用URI和CGI将其分开:
url = 'http://www.example.com?id=4&empid=6'
uri = URI.parse(url)
params = CGI.parse(uri.query)
# params is now {"id"=>["4"], "empid"=>["6"]}
id = params['id'].first
# id is now "4"
请使用这些标准库,不要try 使用正则表达式.
另请参见下面关于Rack::Utils.parse_query
的Quv comments .
参考资料:
Update:现在我可能会使用标准库中的Addressable::Uri
而不是URI
:
url = Addressable::URI.parse('http://www.example.com?id=4&empid=6')
url.query_values # {"id"=>"4", "empid"=>"6"}
id = url.query_values['id'] # "4"
empid = url.query_values['empid'] # "6"