Rails:Hash#to_param的对面

时间:2011-05-18 17:59:45

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

如果我将哈希转换为查询字符串,我该如何将其转换回来?

{:filters => {:colour => ['Red', 'Blue'], :size => 'Medium'}}.to_param
=> "filters[colour][]=Red&filters[colour][]=Blue&filters[size]=Medium"

Rails在填充params哈希时会自动执行此操作,但是可以直接调用此方法吗?

感谢。

2 个答案:

答案 0 :(得分:30)

您正在寻找Rack::Utils.parse_nested_query(query),它会将其转换回Hash。您可以使用以下行来获取它:

require 'rack/utils'

答案 1 :(得分:1)

query_string = "filters[colour][]=Red&filters[colour][]=Blue&filters[size]=Medium"
CGI::parse(query_string)