我想生成一个表格,显示每天创建的用户数量。
执行此操作的最有效或最优雅的ActiveRecord查询是什么?
我的(简化)架构如下所示:
create_table "users" do |t|
t.datetime "created_at"
t.string "name"
end
我想要一个看起来像这样的表,其中整数是每天新用户的数量:
day new users
2012-04-01 55
2012-04-02 63
2012-04-03 77
2012-04-04 88
我想从一个如下所示的数组生成表:
data_table.add_rows( [
[ Date.parse("2012-04-01"), 55],
[ Date.parse("2012-04-02"), 63],
[ Date.parse("2012-04-03"), 77],
[ Date.parse("2012-04-04"), 88]
] )
答案 0 :(得分:12)
您可以使用ActiveRecord group
方法执行此操作:
@users_created_by_day = User.group("DATE(created_at)").count
这将为您提供一个Hash,其中日期为关键字,当天创建的用户数为该值。