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

atm*_*ell 5 ruby-on-rails

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

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

最好的祝福.AsbjørnMorell

Nic*_*ume 16

就像是 :

Comment.order('created_at DESC').all
Run Code Online (Sandbox Code Playgroud)

应该这样做:)

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

Comment.order('created_at DESC').limit(5).all
Run Code Online (Sandbox Code Playgroud)


Chr*_*ald 3

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

如果您希望每篇文章有多个评论,则必须使用多个查询,或者维护一个临时表,其中仅包含每篇文章的最新评论。