Ruby: Como transformar um hash em parâmetros HTT

Isso é muito fácil com um hash simples como

{:a => "a", :b => "b"} 

o que se traduziria em

"a=a&b=b"

Mas o que você faz com algo mais complexo como

{:a => "a", :b => ["c", "d", "e"]} 

que deve ser traduzido para

"a=a&b[0]=c&b[1]=d&b[2]=e" 

Ou ainda pior (o que fazer) com algo como:

{:a => "a", :b => [{:c => "c", :d => "d"}, {:e => "e", :f => "f"}]

Obrigado pela ajuda muito apreciada com iss

questionAnswers(13)

yourAnswerToTheQuestion