Rails group_by 可变长度的周期

Rails group_by period of variable length

尝试 sum/average 一些收入用于在 Rails 4.1 应用程序中绘制图表。

这是我目前拥有的(使用 groupby gem):

metrics = self.all.group_by_day(:metric_date).sum(:revenue)

这会产生一个散列,如下所示,非常适合每日图表。

p metrics #=> {"2015-04-22" => 10, "2015-04-21" => 15, "2015-04-20" => 10, etc..}

但是,我还想将这些分组在不同长度的时间段内,例如从特定日期开始倒计时的 30 或 7 天间隔。

我试过使用 group_by_month、group_by_week,但是这些将它们分组到实际的 month/week,而不是从月中开始倒计时的分组。

如何将这些组合成间隔的散列,同时对该间隔内的值求和?

我为这样的东西制作了一个 gem:convenient_grouper

希望对您有所帮助。