addressable/uri在ruby中按字母顺序给出params

Sam*_*Sam 2 ruby ruby-on-rails addressable-gem

addressable/uri 按字母顺序给出params .如果我想在散列中获取查询参数(即nonce,method,rate,order_type,quantity),我该如何更改代码?

2.1.0 :060 > require "addressable/uri"
2.1.0 :061 > uri = Addressable::URI.new
2.1.0 :062 > uri.query_values = Hash["nonce" => 1405069051840, "method" => "a", "rate" => "rate", "order_type" => "order_type", "quantity" => "quantity"]
 => {"nonce"=>1405069051840, "method"=>"a", "rate"=>"rate", "order_type"=>"order_type", "quantity"=>"quantity"} 
2.1.0 :063 > params = uri.query
 => "method=a&nonce=1405069051840&order_type=order_type&quantity=quantity&rate=rate" 
Run Code Online (Sandbox Code Playgroud)

我需要这样的输出:(因为我通过)

"nonce=1405069051840&method=a&rate=rate&order_type=order_type&quantity=quantity"
Run Code Online (Sandbox Code Playgroud)

现在输出是(字母顺序)

"method=a&nonce=1405069051840&order_type=order_type&quantity=quantity&rate=rate" 
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 6

在传递Array[key, value]成对的,而不是Hash如果你想寻址的宝石,以保持PARAMATERS的顺序.

uri.query_values = [ [ "nonce", 1405069051840 ], ["method", "a" ], ... ]
Run Code Online (Sandbox Code Playgroud)