モデルの属性毎に合計値を計算したい場合
# = アイテムクラス = class Item attr_accessor :name, :price # コンストラクタ def initialize(name, price) self.name = name self.price = price end end # Itemクラスの配列 items = [ Item.new('item_1', 10), Item.new('item_1', 100), Item.new('item_2', 20), Item.new('item_2', 200), Item.new('item_3', 30), Item.new('item_3', 300) ] # itemsのような配列で、name毎にpriceの合計を計算したい場合 # 以下のようにすると計算できます。 result = {} items.group_by(&:name).each do |name, targets| sum = 0 # RubyではArrayクラスにsumメソッドはないので、eachメソッドを使いました。 targets.each{|item| sum += item.price } result[name] = sum end p result # これで下のような結果が得られます。 # result => {"item_1"=>110, "item_2"=>220, "item_3"=>330}