将键值对推入哈希

时间:2012-10-14 00:43:58

标签: ruby

我正在尝试将键和值推送到哈希值,因为我遍历了传递给控制器​​的一些参数。下面的代码片段创建了一个哈希数组,但我希望哈希具有多个键值对。我该怎么做?

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

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

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

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

但我想要更像的东西:

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

@diff_attr = params[place_type].each_with_object({}) do |k,v,hash|
  hash[k.to_sym] = v
end