カテゴリー:
Rails
タグ:
 Rails except hash slice

このエントリーをはてなブックマークに追加
更新日時:
2013年12月02日(月)
作成日時:
2013年12月02日(月)

前の記事 / 次の記事

地味なんだけど使ってみるとじわじわ便利なRailsのメソッド。

slice (ハッシュから指定した値だけを取り出す)

fruit = { apple: "りんご", orange: "オレンジ", grape "ぶどう"}
filterd_fruit = fruit.slice(:apple, :grape)
p filtered_fruit
#=> { :apple => "りんご", :grape => "ぶどう" }
※ 破壊的メソッド slice! もあり。

except (ハッシュから指定した値を削除する)

fruit = { apple: "りんご", orange: "オレンジ", grape "ぶどう"}
filtered_fruit = fruit.exept(:apple, :grape)
p filtered_fruit
#=> { :orange => "オレンジ" }
※ 破壊的メソッド except! もあり。

使いどころとしては、
Railsのコントローラーのフィルターに指定できる、only や except のように使える。

あるハッシュに特定の値だけを認めたい場合 => slice
あるハッシュに特定の値を認めたくない場合 => except

except はRubyのメソッドの delete でも同じようなことができるけど、
delete はキーを1つずつしか指定できないので except の方が便利。