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

时间:2015-10-22 15:34:07

标签: ruby recursion hash nested

想象一下,我们有这样的嵌套哈希:

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

我使用递归方法来实现这一点:

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

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

现在,我想修改将hash {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

1 个答案:

答案 0 :(得分:0)

好的,所以过了一会儿我发布了这个,我发现它是如何工作的。这是代码:

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

我希望它可以帮助有类似问题的人。

相关问题