Групповые записи по месяцам и годам в Rails
Я использую Ruby 1.9.2, Rails 3.0.x и использую MySQL DB. У меня есть модель сообщений, где каждый день можно публиковать новые сообщения.
У меня есть действие index, где я хочу отображать эти сообщения, сгруппированные по месяцам и годам. Это в основном используется для фильтрации сообщений.
Мой запрос выглядит так:
@active_msgs = Messages.where('expiry > ?', Time.now).order('created_at DESC')
Я использовал функцию group_by в Rails после обращения кэта почта
Моя группа по запросу: -
@msgs_by_month = @active_msgs.all.group_by {|u| u.created_at.month }
Мне вернули хэш с именем @msgs_by_month. Это помогло мне сгруппировать сообщения по месяцам, но мне нужно учитывать год,to form a unique key , поскольку это помогло бы мне различить, например, сентябрь 2011 года и сентябрь 2012 года.
Только мой текущий ключ имеет тип Hash [Month] (например, Hash [9] = & gt; для месяца сентября я могу отобразить все соответствующие значения). Как я могу получить уникальный ключ типа месяц, год, который я могу легко зациклить, чтобы отобразить все записи, сгруппированные по месяцу и году создания.
Спасибо
EDIT:-
Я предполагаю, что один из способов сделать это - использоватьcreated_at.to_date
API, при условииВот
, Мне только интересно, как я могуstrip out the day отcreated_at.to_date
чтобы получитьunique месяц и годcombination key которая могла быwork with the group_by function.