在相关表中按字段跟踪活动记录的顺序

| 我有一个典型的论坛风格的应用程序。有一个
Topics
模型,其中
has_many
Posts
。 我要使用Rails 2.3.x进行的工作是查询主题表,并按该主题中的最新帖子进行排序。
@topics = Topic.paginate :page => params[:page], :per_page => 25,
  :include => :posts, :order => \'HELP\'
我敢肯定,这是一个简单的例子,但对于Google来说却并不令人满意。谢谢。     
已邀请:
在连接的列上进行排序可能不是一个好主意,在许多情况下都需要花费大量时间才能运行。最好在创建新帖子时在主题模型上旋转一个特殊的日期字段:
class Post < ActiveRecord::Base
  after_create :update_topic_activity_at

protected
  def update_topic_activity_at
    Topic.update_all({ :activity_at => Time.now }, { :id => self.topic_id})
  end
end
然后,您可以根据需要在
activity_at
列上轻松进行排序。 添加此列时,如果有现有数据要迁移,则始终可以用最长的发布时间填充初始的“ 5”。     

要回复问题请先登录注册