ruby-on-rails - 如何从 Rails 中的哈希列表中删除嵌套键

标签 ruby-on-rails hash nested key except

我现在正在尝试删除哈希列表的嵌套哈希键几个小时。
我看到许多解决方案非嵌套哈希看起来像这样:

   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 方法的解决方案,但找不到任何东西。甚至可以将嵌套的键传递给这个方法,还是应该使用其他方法从我的哈希列表中删除嵌套的哈希键?

最佳答案

关于什么

Hash[nested_hash.map {|k,v| [k,(v.respond_to?(:except)?v.except("nested_key2"):v)] }]

=> {"key1"=>"value1", "key2"=>{"nested_key1"=>"nestedvalue1"}}

啊。

关于ruby-on-rails - 如何从 Rails 中的哈希列表中删除嵌套键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16797617/

相关文章:

ruby-on-rails - heroku 推送被拒绝 : require_tree argument must be a directory

ruby-on-rails - 如何只返回 Mongoid 中需要的字段?

ruby-on-rails - :greater_than_or_equal_to in validates_numericality_of only partially working in rails 3. 1

hash - 使用哈希跟踪文件的唯一版本

memory - Redis 哈希结构并没有像描述的那样提高内存效率

java - 从 Java 中的另一个 ArrayList 中的 ArrayList 获取项目?(董事会想要获取某个位置内的玩家)

javascript - 使用 importmaps 时如何在 Rails 7 中自定义 Trix 工具栏?

wpf - 在 WPF 中设置嵌套元素的样式

python - 我怎样才能遍历这个字典而不是对键进行硬编码

git - 如何获取在预接收 Hook 中提交的所有哈希值?