我有用户注册。我想根据created_at
记录
我可以使用主动记录查询来实现这种分组和计数,而不是通过迭代手动计算吗?
答案 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_at
和count
的哈希值。