我正在尝试创建一个数组,其中包含公司在一周中的每一天所做的所有销售额的总和。现在我有类似的东西
@sales = Sale.all
@sales_total = @sales.map{|sale|sale.total.to_i}
它返回每个销售的每个总数的数组。
在将其转换为数组之前,我如何按天对 Sale 进行分组,并将总计相加?
我正在尝试创建一个数组,其中包含公司在一周中的每一天所做的所有销售额的总和。现在我有类似的东西
@sales = Sale.all
@sales_total = @sales.map{|sale|sale.total.to_i}
它返回每个销售的每个总数的数组。
在将其转换为数组之前,我如何按天对 Sale 进行分组,并将总计相加?
我是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)