我在Ruby 1.9.2上,Rails 3.0.x和我使用MySQL DB。我有一個消息模型,每天可以發佈新消息。在Rails中按月和按年分組的記錄
我有一個索引操作,我希望顯示按月份和年份分組的這些消息。這基本上用於過濾消息。
我的查詢如下所示: -
@active_msgs = Messages.where('expiry > ?', Time.now).order('created_at DESC')
我以前在軌GROUP_BY功能,指的是this post
我GROUP BY查詢後: -
@msgs_by_month = @active_msgs.all.group_by {|u| u.created_at.month }
我返回了一個名爲@msgs_by_month的Hash。這幫助我按月對消息進行分組,但我需要考慮到年,以形成一個獨特的密鑰,因爲這將有助於區分例如2011年9月和2012年9月。
我當前的密鑰只有類型散列[月](例如9月的散列[9] =>,我可以顯示所有適當的值)。我怎樣才能得到一個類型月,年的獨特的關鍵,我可以很容易地循環顯示按月份和年份創建的所有記錄。
謝謝
編輯: -
我猜這樣做的一種方式,是利用created_at.to_date
API,提供here 。我只是在想,我怎麼能從created_at.to_date
剔除一天得到獨特個月和年組合鍵可能與GROUP_BY功能工作。
的可能重複[MySQL查詢GROUP BY日/月/年(http://stackoverflow.com/questions/508791/mysql-query-group-by-day-month-年) – noodl
Nah,不重複。你指的q只是MYSQL相關的,這裏q是一個rails + mysql .. – Philip