今回のRails tipsは slice です。これは、HashクラスのActiveSupport拡張の一つです。
メソッド slice の機能
ハッシュに含まれるキー(とその値の組)のうち、特定のキー名のハッシュを取り出します。
例:
current_hash = {"right_key1" => "value1", "bad_key1" => "bad_value1", "right_key2" => "value2", "right_key3" => "value3"}
right_keys = ["right_key1", "right_key2", "right_key3"]上記のcurrent_hashの中からright_keysをキーとするものだけを取り出します。
right_hash = current_hash.slice(*right_keys)
# => {"right_key1"=>"value1", "right_key2"=>"value2", "right_key3"=>"value3"}解説
sliceはHashクラスのメソッドで、引数は配列(または文字列)です。 引数に配列を入れるときには、配列を展開し(*を使う)てメソッドに渡す必要があります(メソッド呼び出しを参照のこと)。- 引数の値は、レシーバのハッシュのキーまたはそのキーの配列です。レシーバにないキーを含んでいてもエラーになりません。
- 破壊的メソッド
slice!もあります。