想象一下,我们有这样的嵌套哈希:
{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
答案 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
我希望它可以帮助有类似问题的人。