我想通过具有关联值的集合进行排序。
例子:
我得到了一个帖子的多重关联,例如:
- 评论
- 收视率
- 附件
我如何通过这些关联订购帖子,例如:
- order_by most_commented
- order_by most_rated
- order_by most_associations ....
谢谢你。
我想通过具有关联值的集合进行排序。
例子:
我得到了一个帖子的多重关联,例如:
- 评论
- 收视率
- 附件
我如何通过这些关联订购帖子,例如:
- order_by most_commented
- order_by most_rated
- order_by most_associations ....
谢谢你。
现在我可以回答这个问题了^^
在 Mongoid 3.1 版中,活动记录功能“counter_cache”是可用的。例如,我收到了一篇带有引用评论的帖子:
class Post
include Mongoid::Document
field :body, type: String
has_many :comments
end
class Comment
include Mongoid::Document
field :body, type: String
belongs_to :post, counter_cache: true
end
在这种情况下,每个帖子实例都有一个 comments_count 字段,其中包含帖子中引用的评论数。
现在您可以使用 comments_count 字段对您的帖子进行排序。请记住,此字段仅在至少存在一条评论时可用。或者在模型中使用默认值显式设置 comments_count 字段。