计算每天的记录数

时间:2016-09-07 08:04:48

标签: ruby-on-rails ruby-on-rails-4

我有用户注册。我想根据created_at记录

显示过去7天的图表,其中包含每天注册的次数

我可以使用主动记录查询来实现这种分组和计数,而不是通过迭代手动计算吗?

1 个答案:

答案 0 :(得分:1)

使用to_date可以摆脱所有时间信息,实际上只留下你的日子。

User.where('created_at >= ?', 1.week.ago).group_by { |u| u.created_at.to_date }.map { |_,v| [_, v.length]}.to_h

或者,如果您不关心时间部分,可以使用:

User.where('created_at >= ?', 1.week.ago).group(:created_at).count

这将为您提供created_atcount的哈希值。