【发布时间】:2011-06-13 11:08:39
【问题描述】:
大家好,老读者,第一次发帖:)
我有一个带有帖子的应用程序,我正在使用 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'
})
结束
但实际上我需要使用 plusminus 方法来排序帖子,而不仅仅是 vote_count,因为它只是显示一些帖子,而不是投票最多的帖子,或者至少是这样的:
:order => 'votes_for asc'
为了耻辱墙
:order => 'votes_against asc'
目前 votes_for 和 votes_against 只能在像
这样的视图中使用@post.votes_for
如何在我的帖子控制器中使用它们以便能够在 :order => 中使用它们?
谢谢。
【问题讨论】:
-
好吧,我在帖子表中添加了 votes_plus 和 votes_minus 并进行了 vote_up 操作来为它们添加 +1。因此,如果用户为帖子投票,他也会为帖子表本身添加 +1 投票。这不是最好的方法,但现在可以了;)
标签: ruby ruby-on-rails-3 voting