【发布时间】:2013-05-23 18:04:15
【问题描述】:
我现在尝试了几个小时来删除哈希列表的嵌套哈希键。 我看到许多解决方案非嵌套哈希看起来像这样:
sample_hash = {"key1" => "value1", "key2" => "value2"}
sample_hash.except("key1")
这会导致:
{"key2"=>"value2"}
但是,如果我尝试在带有嵌套键的哈希上使用 except 方法,那么它就不起作用了。 这是我的代码:
nested_hash = {"key1"=>"value1", "key2"=>{
"nested_key1"=>"nestedvalue1",
"nested_key2"=>"nestedvalue2"
}
}
nested_hash.except("nested_key2")
except() 方法返回nested_hash,不做任何更改。我一直在寻找一种解决方案,如何将嵌套的哈希键传递给 except 方法,但找不到任何东西。是否甚至可以将嵌套键传递给此方法,或者我应该使用其他方法从我的哈希列表中删除嵌套哈希键?
【问题讨论】:
-
也许你想要一个真正的树,而不是一个嵌套的哈希。您可以查看 github.com/evolve75/RubyTree、github.com/stefankroes/ancestry 或 github.com/mceachen/closure_tree 寻找可能对您有用的宝石。
标签: ruby-on-rails hash nested key except