在Rails中,如何获取GET字符串并将其解析为对象?

时间:2012-10-17 17:39:30

标签: ruby-on-rails ruby-on-rails-3

我很肯定这是一个骗局,但我找不到原作。

给定像foo=bar&x[0]=baz这样的GET样式字符串,如何将其解码为Rails应用程序中的params类数组?


已更新以添加:请注意CGI.parse似乎比魔术Rails所做的要少得多:

1.9.3p194 :006 > CGI::parse 'foo=bar&x[foo][bar]=baz'
 => {"foo"=>["bar"], "x[foo][bar]"=>["baz"]} 

CGI.parse没有将嵌套对象解压缩为多级哈希。在Rails中,在某种程度上,实际上已经对此进行了检查。

1 个答案:

答案 0 :(得分:6)

对于嵌套查询,Rails使用Racks的参数解析器Rack::Utils.parse_nested_query

Rack::Utils.parse_nested_query 'foo=bar&x[foo][bar]=baz'
 => {"foo"=>"bar", "x"=>{"foo"=>{"bar"=>"baz"}}}