Групповые записи по месяцам и годам в 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.

Ответы на вопрос(4)

Ваш ответ на вопрос