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')