我有一个字符串形式的 URL。向其中添加一些参数最简洁的方法是什么?
例如
base = 'http://example.com'
uri1 = some_magical_method(base, :p1 => 'v1') # => http://example.com/?p1=v1
uri2 = some_magical_method(uri1, :p2 => 'v2') # => http://example.com/?p1=v1&p2=v2
uri3 = some_magical_method(uri2, :p3 => nil) # => http://example.com/?p1=v1&p2=v2
1) 在 Ruby 中?
2) 在 Rails 中?
最佳答案
在 Rails 中,ActiveSupport 是可用的,最简单的方法是构造一个散列,然后对其调用 #to_query
。
>> params = {}
>> params[:foo] = "bar"
>> params[:baz] = "bang"
>> params.to_query
=> "baz=bang&foo=bar"
在普通的 Ruby 中,同样适用,但你需要自己编写编码器:
require 'cgi'
def to_query(hsh)
hsh.map {|k, v| "#{k}=#{CGI::escape v}" }.join("&")
end
params = {}
params[:foo] = "bar"
params[:baz] = "bang"
to_query params
=> "baz=bang&foo=bar"
关于ruby-on-rails - 在 Ruby on Rails 中增量构建任意 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8039735/