gpt4 book ai didi

ruby-on-rails - rails : Order array by number of child objects

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:06 26 4
gpt4 key购买 nike

我有一组posts。我想按照他们拥有的 comments 的数量对这个 posts 数组进行排序(数组中的第一个对象是最多的评论,最后一个是最少的)。一个帖子有很多评论。这似乎是一个简单的问题,但我不知道如何订购它们。我已经尝试过了,但我认为不可能通过 order 方法实现这一点。有没有我不知道的 Rails 方法?还是我必须回家滚动它?提前致谢!

PS:我的评论与帖子的关系是多态的 Comment - (belongs_to :threadable)

最佳答案

您可以使用复杂的事件记录查询来完成此操作,但是,到目前为止,最简单的方法是在关联上添加 :counter_cache。您只需在您的 Post 模型中添加一个名为 comments_count 的字段,然后在您的 Comment 模型中添加:

belongs_to :post, counter_cache: true

因为它只是一个列,就像您可以按它排序的所有其他列一样。

参见:http://guides.rubyonrails.org/association_basics.html

关于ruby-on-rails - rails : Order array by number of child objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22947225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com