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

Ala*_* H. 1 ruby-on-rails ruby-on-rails-3

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

给定一个GET风格的字符串foo=bar&x[0]=baz,如何params在Rails应用程序中将其解码为类似数组?


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

1.9.3p194 :006 > CGI::parse 'foo=bar&x[foo][bar]=baz'
 => {"foo"=>["bar"], "x[foo][bar]"=>["baz"]} 
Run Code Online (Sandbox Code Playgroud)

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

cde*_*ers 7

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

Rack::Utils.parse_nested_query 'foo=bar&x[foo][bar]=baz'
 => {"foo"=>"bar", "x"=>{"foo"=>{"bar"=>"baz"}}}
Run Code Online (Sandbox Code Playgroud)