ActiveRecord按天查询新用户数

Dan*_*hoe 3 activerecord ruby-on-rails ruby-on-rails-3

我想生成一个表格,显示每天创建的用户数量.

什么是最有效或最优雅的ActiveRecord查询?

我的(简化)架构看起来像这样:

create_table "users" do |t|
  t.datetime "created_at"
  t.string   "name"
end
Run Code Online (Sandbox Code Playgroud)

我想要一个看起来像这样的表,其中整数是每天新用户的数量:

day              new users
2012-04-01       55
2012-04-02       63
2012-04-03       77
2012-04-04       88
Run Code Online (Sandbox Code Playgroud)

我想从一个如下所示的数组生成表:

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]
] )
Run Code Online (Sandbox Code Playgroud)

Pau*_*son 12

您可以使用ActiveRecord group方法执行此操作,如下所示:

@users_created_by_day = User.group("DATE(created_at)").count
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个哈希,其中日期为关键,并将当天创建的用户数作为值.

  • `User.count(:group =>'date(created_at)')`是另一种选择. (2认同)