0

こんにちは皆さん、長年の読者、初めてのポスター:)

投稿のあるアプリがあり、投稿に投票を追加するために gem thumbs_up (rails v. 3.0.7) を使用しています。上位 10 件の投稿を表示する投稿の名声の壁を実装しましたが、投票で投稿を並べ替える方法 (プラスマイナス メソッド) がわかりません。

今私はちょうど使用しています:

def wall_of_fame
@posts = Post.tally(
  {   :at_least => 1,
      :at_most => 10000,
      :limit => 10,
      :order => 'vote_count desc'
  })

終わり

そして恥の壁のために:

def wall_of_fame
@posts = Post.tally(
  {   :at_least => 1,
      :at_most => 10000,
      :limit => 10,
      :order => 'vote_count asc'
  })

終わり

しかし、実際には、単にvote_countではなくplusminusメソッドを使用して投稿を注文する必要があります。

:order => 'votes_for asc'

そして壁の恥のために

:order => 'votes_against asc'

現在、votes_for と votes_against は次のようなビューでのみ使用できます

@post.votes_for

投稿コントローラーでそれらを使用して、 :order =>で使用できるようにするにはどうすればよい ですか?

ありがとうございました。

4

2 に答える 2

2

私もこの問題に直面しましたが、投票機構をゼロから構築しました。ビューで投稿を並べ替えることになりました。それで、私はそれらを次のように書き換えました:

<%= render @posts.sort_by { |post| post.votes.size }.reverse %>

これにより、私の投稿が投票数の多いものから少ないものの順に並べられました。

幸運を!

@そのダンケント

于 2011-08-06T10:21:47.203 に答える
1

プラスマイナスを注文するだけです。

http://gistpages.com/2013/08/28/order_by_votes_using_the_thumbs_up_gem

Design.plusminus_tally.order('plusminus_tally DESC')
于 2013-08-28T12:17:28.097 に答える