如何在post请求中传递给表单时将哈希转换为以下表单

时间:2015-10-05 03:35:45

标签: ruby-on-rails ruby

我有一些像{ 'a' => 'abc', 'b' => 'def' }这样的哈希值。如何将其转换为"a=abc&b=def"

3 个答案:

答案 0 :(得分:2)

require 'uri'
data = { 'a' => 'abc', 'b' => 'def' }
URI.encode_www_form(data)

结果:

"a=abc&b=def" 
如果有需要转义的字符,

也可以使用

data = { 'a' => '#', 'b' => '&' }
URI.encode_www_form(data)

结果:

"a=%23&b=%26" 

答案 1 :(得分:1)

或者,由于您使用rails并自动拥有ActiveSupport库,因此可以这样做。

{ 'a' => 'abc', 'b' => 'def' }.to_param

答案 2 :(得分:0)

你可以这样做:

h = { 'a' => 'abc', 'b' => 'def' }
query_string = ''
h.each { |k, v| query_string += "#{k}=#{v}&" } 
query_string[0..-2]
# > "a=abc&b=def"