我正在创建一个在 Rails 中的基本论坛。我有一个有很多主题的论坛,并且主题有很多帖子。我想获取特定论坛的所有主题并以第一个是具有最新帖子的主题的方式对它们进行排序。
在我的帖子存储库中,我有一个返回最新帖子的方法。
def latest_post
order('created_at DESC').limit(1).first
end
在 Threads 类中,我有一个方法调用 latest_post 返回最新的帖子
def latest_post
self.posts.latest_post
end
我以以下方式使用该方法来获取线程的最新帖子。
@some_thread.posts.latest_post
现在我想获取线程的有序列表。我尝试向 Thread 类添加默认范围,以便默认对它们进行排序。
default_scope order('latest_post.created_at DESC')
这没有用。我相信由于排序的 latest_post 部分不在数据库级别。
我如何根据他们最新帖子的创建日期订购线程。它不需要是默认排序。