【发布时间】:2015-10-26 17:10:37
【问题描述】:
想象一下我们有这样的嵌套哈希:
{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
【问题讨论】:
-
好的,所以实际上我设法解决了这个问题。我必须添加 hash[key] = Drill(value) 并返回 build_partial(key,value)。
-
很高兴您找到了答案——如果您觉得自己有答案,请将其发布并标记为已解决(您将需要等待两天),以便其他人以后可以更快地找到它。
-
好的,我会这样做的。谢谢:)
标签: ruby recursion hash nested