活动记录信誉系统 - 如何检查current_user投票的值

时间:2014-01-14 22:21:23

标签: ruby-on-rails activerecord rating-system

我正在使用Active Record Reputation System gem,并允许用户对特定列表进行投票或投票。我目前能够检查用户是否通过以下方式对列表进行了投票:

if current_user && listing.has_evaluation?(:votes, current_user)

这告诉我使用用户是否已投票,但我需要类似的逻辑来告诉我他们是否为该特定列表投票或投票。有什么想法吗?相关代码如下:

在列表模型中:

has_reputation :votes, source: :user, aggregated_by: :sum

在列表控制器中

  def vote
    value = params[:type] == "up" ? 1 : -1
    listing = Listing.find(params[:id])
    listing.add_or_update_evaluation(:votes, value, current_user)
    redirect_to :back, notice: "Thank you for voting"
  end

1 个答案:

答案 0 :(得分:0)

确定价值的目标是,我可以显示当前用户是否喜欢某个特定页面。 @ thing.has_evaluation?(::reputation_name,:source)无法正常工作,因为即使用户喜欢,页面也显示为“喜欢”,然后不喜欢。

如果有人遇到此问题,您可以通过调用方法delete_evaluation删除评估作为源级别,然后从系统中删除用户以前的喜欢/不喜欢/投票等,就像他们从未投票一样。

如果您有二元投票过程,则主要有帮助

相关问题