使用日期约束求和/分组?

时间:2012-03-06 12:10:14

标签: ruby-on-rails ruby-on-rails-3

我在我的'StatementSales'模型中编写了以下sum / group方法,并且希望能够按日期限制结果,此时它只是为所有有效的db条目生成总计。在我的观点中,我想提供“一周,一个月,三个月,一年”等链接,理想情况下将这些链接传递给下面的方法。我该怎么做呢?

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

非常感谢提前!

1 个答案:

答案 0 :(得分: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)

然后你可以做

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