变得最活跃有很多模型

时间:2011-05-05 09:32:32

标签: ruby-on-rails ruby-on-rails-3

我有一个人可以在网站上完成多项活动的场景。所以我的人员活动如下:

class User < ActiveRecord::Base
has_many :activities

和类似的活动模型

class Activity < ActiveRecord::Base
belongs_to :user

现在我想按照他们最近的网站活动顺序找到用户及其活动..

例如,如果用户A今天完成了活动A和B,而用户B大约一周前完成了活动C,则用户A应该列在用户B上方。

这可以通过编写SQL查询来完成,但我不确定它们是否是一种很好的做事方式。

先谢谢!!

1 个答案:

答案 0 :(得分:0)

我认为没有铁路方式。如果您使用的是Rails 3,可以试试这个:

Activity.order('created_at DESC')

如果你正在使用Rails 2,你可以像Sam在上面的评论中所说的那样做。

Activity.all(:order => 'created_at DESC')

例如,如果您只想要最近10个活动,或者只想要自昨天以来的活动,那么您可以这样做

Activity.order('created_at DESC').limit(10)
Activity.where('created_at >= ?', Date.yesterday.midnight).order('created_at DESC')