【发布时间】:2014-02-13 21:34:51
【问题描述】:
我将这个 gem 用于 cmets:https://github.com/lml/commontator
可以轻松插入此 gem 以对 cmets 进行投票:https://github.com/ryanto/acts_as_votable
一切似乎都运行良好。但是当试图计算一个用户的总票数时(用户在所有 cmets 上收到的总票数)(业力)
<%= @user.votes.count %>
我收到此错误
undefined method `votes' for #<User:0x0000010dbf23a0>
所以我尝试了这个:
<%= @user.comments.map{|c| c.votes.count}.inject(:+) %>
导致另一个错误:
SQLite3::SQLException: no such column: commontator_comments.commontator_id: SELECT "commontator_comments".* FROM "commontator_comments" WHERE "commontator_comments"."commontator_id" = ? AND "commontator_comments"."commontator_type" = ?
如何呈现特定用户在所有 cmets 上获得的总票数?
【问题讨论】:
-
你试过
@user.find_voted_items.count或@user.get_voted(Comment).count吗? -
是的,都给我一个 NoMethodError
-
你添加
acts_as_voter到用户模型了吗? -
太棒了!刚刚做到了,现在当使用@user.find_voted_items.count 时,它给了我用户投票的项目数。我正在尝试计算用户收到的总票数。
-
例如,如果用户评论了两次,其中一条评论获得 4 票,另一条评论获得 2 票,则他的投票数为 6
标签: ruby-on-rails ruby gem