大家好长时间读者,第一次海报:)
我有一个带帖子的应用程序,我使用gem thumbs_up(rails v.3.0.7)为帖子添加投票。我已经为显示前10个帖子的帖子实现了一面名声,而我无法弄清楚如何通过投票(加上minus方法)对帖子进行排序。
现在我只是使用:
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'
})
端
但实际上我需要使用 plusminus 方法订购帖子,而不仅仅是 vote_count ,因为它只显示了一些帖子,而不是那些投票最多的帖子,或者至少是这样的:
:order => 'votes_for asc'
和wall_of_shame
:order => 'votes_against asc'
目前,votes_for和votes_against只能在像
这样的视图中使用@post.votes_for
如何在我的帖子控制器中使用它们才能在:order => 中使用它们?
谢谢。
答案 0 :(得分:2)
我也遇到过这个问题,但是我从头开始构建我的投票机制。我最终在视图中对帖子进行了排序。所以,我这样评价他们:
<%= render @posts.sort_by { |post| post.votes.size }.reverse %>
这使我的帖子从最多票数到最少票数。
祝你好运!
@thatdankent
答案 1 :(得分:1)
您只需要订购plusminus:
http://gistpages.com/2013/08/28/order_by_votes_using_the_thumbs_up_gem
Design.plusminus_tally.order('plusminus_tally DESC')