2012-03-06 8 views
0

私は 'StatementSales'モデルに次のようなsum/groupメソッドを書いています。すべての有効なdbエントリの合計を生成している瞬間に結果を日付で制約できるようにしたいと考えています。私の見解では、「1週間、1ヶ月、3ヶ月、1年」などへのリンクを提供したいと考えており、理想的には以下の方法にそれらを渡します。私はこれにどのようにアプローチすべきですか?日付制約のある合計/グループ化?

def self.total_units 
sum(:units) 
end 

def self.units_by_store 
group(:store).sum(:units) 
end 

def self.units_by_territory 
group(:territory).sum(:units) 
end 

def self.units_by_upc 
group(:upc).sum(:units) 
end 

事前に感謝します。

答えて

0

あなたは次にあなたが

def self.total_units 
    self.one_week.sum(:units) 
end 
+0

感謝を行うことができ、あなたのクラスに

scope :between_dates, lambda { |start_date, end_date| where("date < #{end_date} AND date >= #{start_date}") } scope :one_week, between_dates(Date.today, Date.today + 7.days) 

これを追加

にスコープを使用することができます!ちょうどこれを試してみましたが、私はいくつかの奇妙な日付を戻ってSQLiteのテーブル(2455958.5の形式の日付)から戻っているようですので、結果はありません。私はいくつかのダミーのデータを直接dbに入力しましたが、UIを介して追加されたか、インポートされた他のテーブルではうまくいきましたか? – Raoot

関連する問題