1

ユーザーが投稿できるアプリを構築しています。これらの投稿は、賛成票と反対票を投じることができます。各ポスト レコードは と を追跡upvotes:integerdownvotes:integerます。総投票数が最も多いレコードを並べ替えられるようにしたい (つまり: upvotes-downvotes)。クラスメソッドが呼び出されたオブジェクトとどのように相互作用するかをよく理解していないため、これを行う方法がまったくわかりません。これは私の試みです:

私のコントローラー:

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 に答える