アソシエーション内の「合計」列の総数はどのように合計されますか?アクティブレコードを使用して関連付けられたテーブルの合計
私のSQL-fuは吸うので、私はレール2.3.5のアプリケーションのためにActive Recordを使ってこれを行う方法を学びたいと思います。
のは、私が持っているとしましょう:
Shop
has_many :customers
has_many :transactions, :through => :customers
ので、通常のもの。
shop = Shop.first
shop.transactions
=> 100
[OK]を、質問のためのすべてのことの背景:
私は昨年からの取引でtotal
列を合計する(2010年1月1日2010..Dec 31)と、顧客がそれらを表示。
私はトランザクションをグループ化して条件を見つける方法を知っていますが、それは私のSQLの欠如が私を下げさせる部分です。
first = Date.new(2010, 01, 01)
last = Date.new(2010, 12, 31)
shop.transactions(:conditions => {:created_at => first..last}, :group => :customer_id, :include => sum(:total))
私はちょうどスタブを取った、適切なトラックにいますか?
私はちょうど私のために働く答えを見つけました。以下に投稿します。 – pjammer
また、もし私がそれをやろうとしたら、私は注射を使用したいと思います。古い私が持っているだろうが、私はそれが良い 'の'のためにデータベースを使用しようとしている。 – pjammer