2

我正在尝试创建一个数组,其中包含公司在一周中的每一天所做的所有销售额的总和。现在我有类似的东西

@sales = Sale.all
@sales_total = @sales.map{|sale|sale.total.to_i} 

它返回每个销售的每个总数的数组。

在将其转换为数组之前,我如何按天对 Sale 进行分组,并将总计相加?

4

1 回答 1

3

我是groupdate gem 的粉丝。

您可以执行以下操作:

@sales_total = Sale.group_by_day(:created_at).order("day asc").sum(:total) 

假设total是您要总结的列。

编辑- 要添加时间间隔,您可以使用where,例如:

@sales_total = Sale.where('created_at between ? and ?', Date.today, 1.week.ago).group_by_day(:created_at).order("day asc").sum(:total) 
于 2013-09-12T22:38:49.463 回答