我有一个场景,一个人可以在网站上做多个活动。所以我的person活动看起来像这样:
class User < ActiveRecord::Base
has_many :activities
和类似的活动模型
class Activity < ActiveRecord::Base
belongs_to :user
现在我想找到用户和他们的活动在他们最近的活动顺序的网站..
例如,如果用户A今天做了活动A和B,用户B在一周前做了活动C,那么用户A应该列在用户B之上。
这可以通过编写SQL查询来完成,但我不确定他们是否是一个很好的方式来做这件事。
提前感谢!!
我不认为有铁路的方式。如果你使用的是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')