Rails 3 ActiveRecord 查询接口,按每个父项最近创建的子项对父项进行排序

发布于 2024-11-02 16:19:55 字数 169 浏览 3 评论 0原文

大家好,我有一个模型线程,有很多帖子。

我想知道使用 Rails3 如何按照最近创建的帖子的线程降序对线程进行排序。

在段/伪代码中,这就是我想要

为每个线程执行的操作,找到最近创建的帖子 以某种方式将该帖子日期与其相关帖子结合起来 按此关联的发布日期按升序对我的线程进行排序

Hey all, I have a model Thread that has_many Posts.

I was wondering with rails3 how i would go about Sorting the thread in descending order by which thread has the most recently created post.

In segments / pseudocode this is what i want to do

for each thread find the most recently created post
somehow combine that post date with its associated post
order my threads by this associated post date in ascending order

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

溺深海 2024-11-09 16:19:55

我认为这里最好和最性能的解决方案是使用 touch 选项:

class Post < ActiveRecord
  belongs_to :thread, :touch => true
end

因此您将能够找到最后一个活动线程,就像这样简单:

Thread.order("updated_at DESC").limit(10)

查询怎么样...您可以尝试通过子对象找到它:

active_threads = Post.includes(:threads).order("created_at DESC").all.map(&:thread).uniq

I think the best and most perfomance solution here is to use touch option:

class Post < ActiveRecord
  belongs_to :thread, :touch => true
end

So you will able to find last active Threads as simple as:

Thread.order("updated_at DESC").limit(10)

What about query... You can try to find it via child objects:

active_threads = Post.includes(:threads).order("created_at DESC").all.map(&:thread).uniq
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文