gpt4 book ai didi

ruby - 想要按 Datamapper 中的关联记录数排序

转载 作者:数据小太阳 更新时间:2023-10-29 07:58:06 25 4
gpt4 key购买 nike

假设我有以下 DataMapper 资源:

class Post
include DataMapper::Resource

has n, :comments
...

end

class Comment
include DataMapper::Resource

belongs_to :post
...

end

要获得有序的帖子列表,我知道你可以这样做:

@posts = Posts.all(:order => :date.desc)

但是假设我想显示所有按评论数量降序排列的帖子。我该怎么做?

最佳答案

您也可以使用 sort_by,它会调用一个单独的查询:

@post = Post.all(:order => :date.desc).sort_by { |post| -post.comments.count }

如果要改顺序,可以把减号去掉:

@post = Post.all(:order => :date.desc).sort_by { |post| post.comments.count }

这在语法上很好,但正如 adamaig 指出的那样,它的性能可能比在数据库中缓存评论数更糟糕,因为您要添加一个额外的 SQL 查询。

关于ruby - 想要按 Datamapper 中的关联记录数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498662/

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