Foo.group(:start_at).count(:id)
Как я могу сгруппировать это по дате? столбец start_at является столбцом даты и времени
Это должно работать (рельсы 3):
Foo.order(:start_at).group("DATE(start_at)").count
edit: если вы используете PostgreSQL, запрос должен быть
Foo.order("DATE(start_at)").group("DATE(start_at)").count
, иначе вы получите ошибку
("PGError: ERROR: column "foos.start_at" must appear in the GROUP BY clause or be used in an aggregate function")
На основе
Отображение новых пользователей по дате в приложении Rails с использованием Seer
и
http://www.pastbedti.me/2009/11/grouping-a-timestamp-field-by-date-in-ruby-on-rails-postgresql/
Я создал драгоценный камень для этого.https://github.com/ankane/groupdate
Foo.group_by_day(:created_at).count
Вы даже можете указать часовой пояс.
Foo.group_by_day(:created_at, time_zone: "Pacific Time (US & Canada)").count