Posted at

RailsでHashの一部だけを取り出す・取り除く方法

More than 5 years have passed since last update.

ActiveSupportには


  • Hashの一部を取り出す: Hash#slice

  • Hashの一部を取り除く: Hash#except

ためのメソッドが用意されています.

以下の様に用います.

{a: 1, b: 2, c: 3}.slice(:a, :c)

=> {:a=>1, :c=>3}

{a: 1, b: 2, c: 3}.except(:a)
=> {:b=>2, :c=>3}

モデルの属性値の一部をinitializeなどで渡したいときに便利ですね.


参考