2014-09-29 124 views
-1

我有一个用户在puppet声明中传递的散列,并且create_resources使用它,它需要添加一个新的嵌套级别并保留键成为关键,但它的价值被设置为一个嵌套的哈希与原始值和一些字符串的值。在ruby中修改一个哈希以使键的值包含嵌套哈希

等给出这样

 hash = { 
      "Field1" => "Value11", 
      "Field2" => ["value1","value2"], 
     } 

然后想有新的散列之后将要给出这个输出

 hash = { 
      "Field1" => { "ensure" => "present", 
          "value" => "Value11", 
         }, 
      "Field2" => { "ensure" => "present", 
          "value" => ["value1","value2"], 
         }, 
      } 

试图做

  added = {'ensure' => 'present'} 
      hash.zip([added]) 

无济于事。

回答

1
hash.each{|k, v| hash[k] = {"ensure" => "present", "value" => v}} 
+1

这真是太棒了谢谢 – 2014-09-29 19:37:43