1

我正在构建一个允许用户发布的应用程序。这些帖子可以被赞成和反对。每个帖子记录都会跟踪upvotes:integerdownvotes:integer。我希望能够对总投票数最多的记录进行排序(换句话说:)upvotes-downvotes。我完全不知道如何做到这一点,因为我不太了解 Class 方法如何与调用它们的对象交互。这是我的尝试:

我的控制器:

def index
    @posts = Post.find(:all).most_votes.order(vote_difference)
end

我的 Post.rb 模型:

def self.most_votes
   vote_difference = (upvotes-downvotes)
end

关于如何做到这一点的任何想法?

4

1 回答 1

1

事实证明,您实际上可以将计算直接插入到 .order() 值中:

@posts = Post.find(:all).order('upvotes + downvotes')
于 2012-08-15T11:45:37.643 回答