x = {:name => "John", :data => {:physical => {:age => 25, :weight => 150}}}
我希望将数据的子属性上移一层(但不一定只是简单地展平所有属性)。在这种情况下,我基本上想将 :physical 属性“上移”一级。
我正在尝试这个
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}}
最佳答案
试试这个:
x = x.merge(x.delete(:data))