我想对查询参数进行一些清理.
我解析查询CGI.parse
,然后我删除一些参数,但我找不到相反的方法来构建查询.
我真的不想做类似的事情
params.map{|n,v| "#{CGI.escape n}=#{CGI.escape v.to_s}"}.join("&")
Run Code Online (Sandbox Code Playgroud)
必须有一个更简单的方法.在那儿?
URI模块中有一个很好的方法:
require 'uri'
URI.encode_www_form("q" => "ruby", "lang" => "en") #=> "q=ruby&lang=en"
Run Code Online (Sandbox Code Playgroud)
虽然没有更好的答案,但我会提出我现在正在使用的方法。
def build_query(params)
params.map do |name,values|
values.map do |value|
"#{CGI.escape name}=#{CGI.escape value}"
end
end.flatten.join("&")
end
Run Code Online (Sandbox Code Playgroud)