1

当我遍历传递给我的控制器的一些参数时,我试图将键和值推送到哈希中。下面的代码片段创建了一个哈希数组,但我想要具有多个键值对的哈希。我该怎么做呢?

 @diff_attr = []
 params[place_type].each_pair do |k, v|
   @diff_attr << {k.to_sym=>v}
 end

我应该将我的 @diff_attr 更改为 hash: @diff_attr = { },但在此之后,我不确定如何在我的迭代块中传递键和值。

目前,如果我puts @diff_attr,我会得到类似的东西:

{:name => "blah blah"}, {:age => "24"}

但我想要更多类似的东西:

{:name=>"blah blah", :age=>"24"}

4

2 回答 2

3
 @diff_attr = {}
 params[place_type].each_pair do |k, v|
   @diff_attr[k.to_sym] = v
 end
于 2012-10-14T00:49:49.667 回答
2
@diff_attr = params[place_type].each_with_object({}) do |k,v,hash|
  hash[k.to_sym] = v
end
于 2012-10-14T00:56:46.573 回答