Ruby 嵌套哈希 'super' 密钥访问

Ruby nested hash 'super' key access

假设我们有这样的嵌套哈希:

{Class=>{"attr"=>{NestedClass=>{"nested_attr"=>9}}}}

我使用的递归方法使我达到了这一点:

{Class=>{"attr"=>{NestedClass=>{"nested_attr"=>9}}}}
                  ^^^^^^^^^^^

其中 NestedClass 是键,{"nested_attr"=>9}}}} 是值。

现在,我想修改以将散列 {NestedClass=>{"nested_attr"=>9}}}} 更改为某个对象,但它需要像

{Class=>{"attr"=>some_new_object}}

如何才能达到这样的效果?

这是我使用的示例方法:

def drill(hash)
  hash.each do |key, value|
    drill(value) if value.instance_of?(Hash)
    build_partial(key, value) if class?(key)
  end
end

好的,几分钟后我发布了这个,我发现它是如何工作的。这是代码:

def drill(hash)
  hash.each do |key, value|
    hash[key] = drill(value) if value.instance_of?(Hash)
    return build_partial(key, value) if class?(key)
  end
end

希望对遇到类似问题的人有所帮助。