以下は、キー '2013/09" などのハッシュを提供します...
monthly_donations = {}
date = Time.now
while date > 2.years.ago do
range = date.beginning_of_month..date.end_of_month
monthly_donations[ "{#date.year}/#{date.month}" ] = Giftl.sum(:column, :conditions => {created_at >= range})
date -= 30.days
end
その期間のレコードを選択するには、これで十分です。
donations = Gift.where("date >= #{2.years.ago}")
これを行うこともできます:
donations = Gift.where("date >= :start_date AND date <= :end_date",
{start_date: 2.years.ago, end_date: Time.now} )
参照: 2.2.1 「プレースホルダー条件」
http://guides.rubyonrails.org/active_record_querying.html
データベース レコードの列を合計するには、次のようにします。
sum = Gift.sum(:column , :conditions => {created_at >= 2.years.ago})