Techioz Blog

一致する値を含むハッシュキーを見つける方法

概要

以下のクライアントのハッシュがあるとすると、client_id と一致させたい場合にキーを取得するための (複数行のスクリプトを書かずに) Ruby の簡単な方法はありますか?例えば。 client_id == “2180” のキーを取得するにはどうすればよいですか?

clients = {
  "yellow"=>{"client_id"=>"2178"}, 
  "orange"=>{"client_id"=>"2180"}, 
  "red"=>{"client_id"=>"2179"}, 
  "blue"=>{"client_id"=>"2181"}
}

解決策

Ruby 1.9 以降:

hash.key(value) => key

ルビー 1.8:

hash.indexを使用できます

したがって、「オレンジ」を取得するには、次のようにします。

clients.key({"client_id" => "2180"})