我有一个这样的哈希:
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/