Rails 3:group =>:按created_at desc排序的字段

如何选择按created_at desc排序的列分组的所有记录。

我可能想要检索每篇文章的所有最新评论。 无论我做什么组(:article_id),总会返回最早的评论。

最好的祝福。 AsbjørnMorell

你不会用SQL找到一个简单的答案 – 组在排序之前发生(因为组通常用于聚合数据)。 只需在文章记录中保留latest_comment_id字段,然后在找到文章时加入对latest_comment_id的评论。

如果您希望每篇文章有多个评论,那么您将不得不求助于使用多个查询,或者只维护每篇文章中最新评论的临时表。

就像是 :

 Comment.order('created_at DESC').all 

应该这样做:)

如果您只想要第一个结果, first使用而不是all 。 你也可以使用limit 。 例如,获得第一个结果:

 Comment.order('created_at DESC').limit(5).all 
 Comment.group(:article_id).order('created_at DESC')