我确定这是一个骗局,但我找不到原件。
给定一个 GET 风格的字符串,如 foo=bar&x[0]=baz
,我如何在 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 中,在某种程度上,这实际上是经过检查的。
最佳答案
对于嵌套查询,Rails 使用 Racks 的参数解析器 Rack::Utils.parse_nested_query
:
Rack::Utils.parse_nested_query 'foo=bar&x[foo][bar]=baz'
=> {"foo"=>"bar", "x"=>{"foo"=>{"bar"=>"baz"}}}
关于ruby-on-rails - 在 Rails 中,如何获取 GET 字符串并将其解析为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940124/