如何按最近的帖子对用户进行排序?

Mis*_*hko 5 sql activerecord ruby-on-rails ruby-on-rails-3

我有两个型号:User,并Post具有user_id柱(外键),和created_at列.

我想通过最新的帖子对用户进行排序.例如,如果:

user_id = 1, created 3 posts at: 17/05/2011, 19/05/2011, 21/05/2011
user_id = 2, created 1 post at: 22/05/2011
user_id = 3, created 2 posts at: 18/05/2011, 20/05/2011
Run Code Online (Sandbox Code Playgroud)

结果应该是:

user_id = 2
user_id = 1
user_id = 3
Run Code Online (Sandbox Code Playgroud)

你会如何在Rails 3中实现这一目标?

apn*_*ing 1

应该是这样的:

Post.select(:user_id).group(:user_id).order("created_at DESC")
Run Code Online (Sandbox Code Playgroud)

  • @Misha:我假设你在下面使用MySQL。在这种情况下,order("created_at DESC") 将使用组中某一行的created_at 字段——换句话说,您将获得随机顺序。(其他引擎会拒绝该子句并出现错误。) (2认同)