我正在构建一个允许用户发布的应用。这些帖子可以被投票和投票。每个帖子记录都会跟踪upvotes:integer
和downvotes: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
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
事实证明,您实际上可以将计算直接插入.order()值:
@posts = Post.find(:all).order('upvotes + downvotes')