2016-07-22 6 views
0

私は、属性:quarter:revenueを持つ請求書のアクティブレコードを持っています。四半期の 例は、私が何をしたいのか...など、「Q1 2015」、「Q2 2015」、「Q4 2014」ユニーク属性ごとのActiveRecord合計

ある一意の各四半期の各:quarterとマップと:revenueの合計を作るです。

私はそれぞれのユニークな:quarter

@bills.map {|bill| bill.quarter}.uniq 

でマップを取得する方法を知っていると私は、私はこれら二つを組み合わせることができますどのように:revenue

@bills.map {|bill| bill.revenue}.sum 

を合計するマップを作成する方法を知っていますか?

+0

したがって、あなたは四半期ごとにどれくらいの収入を得ようとしていますか? – siegy22

+0

私がやりたいことはまさにそれですね、はい! :) – rippster

答えて

2

ActiveRecordクエリを直接使用することができます。

@bills.group(:quarter).sum(:revenue) 
+0

'@ bills'はActiveRecordではないことに気付きました。実際には私はそれをJSONから取得し、モデルはActiveRecord以外のものです。したがって、 '@ bills'はオブジェクト配列です。これでどのように私は同じ結果を得ることができますか? – rippster

+0

Enumerableメソッドを使用することができます: '#group_by'と'#transform_values'と '#sum'はHailsクラスとEnumerableクラスにそれぞれRailsによって追加されます: ' @ bills.group_by(&:quarter)。 transform_values {| v | v.sum(&:収益)} ' – Ivan

関連する問題