有没有办法在 Rails 中获取传递的 URL 字符串中的查询字符串?
我想传递一个 URL 字符串:
http://www.foo.com?id=4&empid=6
我怎样才能得到id
and empid
?
如果字符串中有 URL,则使用 URI 和 CGI 将其分开:
require '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"
请使用这些东西的标准库,不要尝试自己用正则表达式来做。
另请参阅 Quv 的评论Rack::Utils.parse_query
below.
参考:
- CGI.parse https://ruby-doc.org/stdlib/libdoc/cgi/rdoc/CGI.html#method-c-parse
- URI.parse https://ruby-doc.org/stdlib/libdoc/uri/rdoc/URI.html#method-c-parse
Update: 这些天我可能会使用Addressable::Uri https://github.com/sporkmonger/addressable代替URI
来自标准库:
require "addressable/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"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)