我陷入了需要在散列中找到丢失键的情况。但问题是关键是不确定它可以是某些键的任何键。
例如
{"from"=>"abc@gmail.com", "to"=>"def@gmail.com:ijk@gmail.com:lmn@gmail.com", "subject"=>"hi", "body"=>"there", "cc" => "def@gmail.com:ijk@gmail.com", "bcc" => "def@gmail.com:ijk@gmail.com"}
缺少的密钥可以来自,主体,主体,但不是cc和密送。因此,我需要找出散列中缺少哪些键,以便将特定键返回给用户。我不能在模型级别这样做 此链接中提供的This solution没有帮助,因为它只是返回我的真或假。而不是那样,我需要丢失的密钥,这些密钥在我的哈希
中不存在答案 0 :(得分:3)
您可以使用Hash#keys
方法
REQUIRED_KEYS = %w(from subject to body)
hash = {
"from"=>"abc@gmail.com",
"to"=>"def@gmail.com:ijk@gmail.com:lmn@gmail.com",
"subject"=>"hi",
"body"=>"there",
"cc" => "def@gmail.com:ijk@gmail.com",
"bcc" => "def@gmail.com:ijk@gmail.com"
}
REQUIRED_KEYS - hash.keys
#=> []
hash.delete('to')
#=> "def@gmail.com:ijk@gmail.com:lmn@gmail.com"
REQUIRED_KEYS - hash.keys
#=> ["to"]