ruby-on-rails - 使用 except 删除哈希键

标签 ruby-on-rails ruby

我有一个这样的哈希:

my_hash = {
"user_attributes" => {
     "email" => "email@email.com", 
     "person_attributes" => {
           "first_name" => "a_name", 
           "last_name" => "a_name"
      }
  }
}

我想删除所有 "person_attributes" 内容,所以我使用了:

my_hash.except("person_attributes")

但这并没有做任何事情。如何删除子哈希键?

最佳答案

您必须使用它来获取 my_hash['user_attrbiutes'] 除了 person_attributes:

2.1.0 :010 > my_hash['user_attributes'].except('person_attributes')
 => {"email"=>"email@email.com"} 

要获得 {"user_attributes"=>{"email"=>"email@email.com"}} 的输出,您可以使用:

 => {"user_attributes"=>{"email"=>"email@email.com", "person_attributes"=>{"first_name"=>"a_name", "last_name"=>"a_name"}}} 
2.1.0 :026 > my_hash['user_attributes'].delete('person_attributes')
 => {"first_name"=>"a_name", "last_name"=>"a_name"} 
2.1.0 :027 > my_hash
 => {"user_attributes"=>{"email"=>"email@email.com"}} 

关于ruby-on-rails - 使用 except 删除哈希键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24512878/

相关文章:

ruby - MongoMapper - 手动设置 ObjectId 失败并显示 "illegal ObjectID format"

ruby-on-rails - ':remote => true' 如何在 Rails 中工作

ruby-on-rails - rails : how can I access the request object outside a helper or controller?

ruby-on-rails - Amazon S3 直接上传无法识别文件的内容类型

ruby - 我可以在自身的上下文中创建一个过程吗?

ruby - 如何使用 Ruby 将对象推送到数组 x 次?

ruby - Ubuntu 10 中的编译错误

ruby-on-rails - 使用 Hotwire 无限滚动分页和过滤

ruby-on-rails - 使用 OmniAuth 在 Factory Girl 中创建用户?

ruby-on-rails - 学习http和cgi