5
x = {:name => "John", :data => {:physical => {:age => 25, :weight => 150}}}
我正在寻找将数据的子属性向上移动一层(但不一定只是简化所有属性)。在这种情况下,我基本上希望将物理属性“向上”移动一个级别。如何将红宝石散列中的属性“向上”移动一个级别
我想这
y = x[:data']
y.each{ |key| x[key] = y[key] }
,但我得到...
x = x.except(:data)
=> {:name=>"John", [:physical, {:age=>25, :weight=>150}]=>nil}
我找...
=> {:name=>"John", :physical => {:age=>25, :weight=>150}}
难道你不是指':data',而是':physical'吗? – matt 2011-06-12 22:11:11
是的,修复了答案。 – 2011-06-12 22:12:45
或['merge!'](http://ruby-doc.org/core/classes/Hash.html#M000758)以避免额外复制。 – 2011-06-12 22:41:47