Я делаю подсчет статистики в своем продукте. Пользователь выполнил ряд операций, скажем, опубликовал комментарии. Я хочу показать им, сколько комментариев они отправили в неделю за последний месяц или месяц за последний год.Группировка по неделям/месяцам/etc & ActiveRecord?
Есть ли способ с activerecord, чтобы сгруппироваться таким образом? Лучше всего просто сделать это вручную - перебирать суммирование записей на основе моих собственных критериев?
class User < ActiveRecord::Base
has_many :comments
end
class Comments < ActiveRecord::Base
belongs_to :user
end
@user.comments(:all).map {|c| ...do my calculations here...}
или есть лучший способ?
спасибо! Орен
'group_by' - это не метод ActiveRecord, а метод Ruby на' Enumerable'. – Laurens
Просто использование 'u.created_at.month' короче –
Пожалуйста, не то, что это будет загружать все записи из базы данных, создавать экземпляры объектов ActiveRecord, анализировать даты в объектах, поддерживаемых часовым поясом ActiveSupport, - всего лишь для подсчета количества записей. –