converter hash rubi em string de consulta de URL ... ou seja, entre colchetes

No Python, eu posso fazer isso:

>>> import urlparse, urllib
>>> q = urlparse.parse_qsl("a=b&a=c&d=e")
>>> urllib.urlencode(q)
'a=b&a=c&d=e'

No Ruby [+ Rails], não consigo descobrir como fazer a mesma coisa sem "rodar sozinho", o que parece estranho. O modo Rails não funciona para mim - adiciona colchetes aos nomes dos parâmetros de consulta, que o servidor do outro lado pode ou não suportar:

>> q = CGI.parse("a=b&a=c&d=e")
=> {"a"=>["b", "c"], "d"=>["e"]}
>> q.to_params
=> "a[]=b&a[]=c&d[]=e"

Meu caso de uso é simplesmente o desejo de mexer com os valores de alguns dos valores noquery-string parte do URL. Parecia natural confiar na biblioteca padrão e / ou Rails e escrever algo como isto:

uri = URI.parse("http://example.com/foo?a=b&a=c&d=e")
q = CGI.parse(uri.query)
q.delete("d")
q["a"] << "d"
uri.query = q.to_params # should be to_param or to_query instead?
puts Net::HTTP.get_response(uri)

mas somente se o URI resultante for de fatohttp://example.com/foo?a=b&a=c&a=d, e nãohttp://example.com/foo?a[]=b&a[]=c&a[]=d. Existe uma maneira correta ou melhor de fazer isso?

questionAnswers(5)

yourAnswerToTheQuestion