See ActiveRecord :: Settlements # Amount
by_week = (1...10).inject({}) do |wh, weeks_ago|
startat = weeks_ago.weeks.ago
endat = (weeks_ago - 1).weeks.ago
wh[weeks_ago] = [:magazines, :books, :videos, :greeting_cards, :pens].inject({}) do |sh, attr|
sh[attr] = ItemsSold.where("sold_date > ? and sold_date <= ?", startat, endat).sum(attr.to_s)
sh
end
wh
end
{1 => {:magazines => 5, :books => 33, ...}, 2 => {{:magazines => 13, :books => 28, ...}}, ...}, - (1 , 2 ..), - .