Rubyでオブジェクトが格納されている配列をある変数をキーにハッシュ化してまとめる方法

例) Object.master_idでハッシュ化

a.master_id = 1
b.master_id = 2
c.master_id = 1

[a, b, c] → {1 => [a, c], 2 => [b]}

解決策

Enumerable.group_by使用でOK。

[a, b, c].group_by {|obj| obj.master_id}  # {1 => [a, c], 2 => [b]}

参考URL

http://ref.xaio.jp/ruby/classes/enumerable/group_by