【问题标题】:In Rails, how can I take a GET string and parse it into an object?在 Rails 中,如何获取 GET 字符串并将其解析为对象?
【发布时间】:2012-10-08 01:17:20
【问题描述】:

我确定这是一个骗局,但我找不到原件。

给定一个像 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 中,在某种程度上,这实际上是经过检查的。

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

  • 谢谢。不过,Rails 似乎在此之上做了更多的魔法,尤其是 w.r.t.硬括号。编辑我的问题以添加此内容。
猜你喜欢
  • 1970-01-01
  • 2013-01-14
  • 2017-06-26
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多