2011-02-08 8 views
2

私はコレクションにある値から合計を作成するのが難しいです。私が持っているコレクションは、(レールで)1対多の関係から、注文には多くの製品があります。Ruby 1.9.2/Rails 3 - ハッシュコレクションからの集計

製品はハッシュであり、価格は値です。

以前は、組み込みのarray.sumメソッドを使用していましたので、私の製品からすべての価格を取得しようとしていましたが、新しい配列を作成して合計値を選択することはできませんでしたこの配列の私の製品から。

これを行うには、もっと良い方法がありますか?注文に含まれる製品価格の合計を取って、注文の合計価格を定義するOrderモデルのメソッドを作成しようとしています。

答えて

8

は、私は、次の操作を行います。

 
class Order 
    has_many :products 

    def price 
    products.all.sum(&:price) 
    end 
end 

今すぐ呼び出し.priceをOrderオブジェクトの上にあなたのためのすべての製品価格を合計します。

+0

ありがとう、私は何をしようとしていたためにいくつかのセクシーな探している方法がなければならないことを知っていた。私は本当に助けに感謝します。 – Kombo