4

毎日何人のユーザーが作成されたかを示すテーブルを生成したいと思います。

これを行うための最も効率的または洗練された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]
] )
4

1 に答える 1

14

これを行うには、次のように ActiveRecordgroupメソッドを使用します。

@users_created_by_day = User.group("DATE(created_at)").count

これにより、日付をキーとし、その日に作成されたユーザー数を値とするハッシュが得られます。

于 2012-04-29T20:13:20.570 に答える