Порядок постов по количеству голосов - PullRequest
0 голосов
/ 13 июня 2011

Привет всем, давний читатель, первый постер:)

У меня есть приложение с постами, и я использую gem thumbs_up (rails v. 3.0.7) для добавления голосов к постам.Я внедрил стену славы для постов, показывающих топ-10 постов, и я просто не могу понять, как сортировать посты по голосам (метод plusminus).

Теперь я просто использую:

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

end

и для стены позора:

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

end

но на самом деле мне нужно заказать посты, используя plusminus метод, а не просто voice_count , потому что он просто показывает мне некоторые сообщения, а не те, которые набрали наибольшее количество голосов, или, по крайней мере, что-то вроде:

:order => 'votes_for asc'

и дляwall_of_shame

:order => 'votes_against asc'

В настоящее время voice_for и Vote_against могут использоваться только в представлениях, таких как

@post.votes_for

Как их использовать в контроллере сообщений, чтобы иметь возможность использовать их в : order => ?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 06 августа 2011

Я тоже сталкивался с этой проблемой, но я с нуля построил свою машину для голосования.Я закончила сортировку своих сообщений в представлениях.Итак, я перечитал их так:

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

Это упорядочивало мои посты с наибольшим количеством голосов за наименьшее количество голосов.

Удачи!

@ thatdankent

1 голос
/ 28 августа 2013

Вам просто нужно заказать plusminus:

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

Design.plusminus_tally.order('plusminus_tally DESC')
...