我有两个模型:选民和民意调查。
选民可以通过两种方式对民意调查进行投票:1) 赞成/反对票 2) 权力投票
我有向上/向下投票工作,但我希望能够知道用户总共积累了多少权力投票,因为他们只能拥有一定数量。
民意调查.rb
class Poll < ActiveRecord::Base
belongs_to :voter
has_reputation :votes,
source: :voter
has_reputation :powervotes,
source: :voter,
source_of: [{reputation: :voter_powervotes, of: :voter}]
has_reputation :score,
source: [
{ reputation: :votes },
{ reputation: :powervotes, weight: 2 }]
def upvote(voter)
self.add_or_update_evaluation(:votes, 1, voter)
end
def downvote(voter)
self.add_or_update_evaluation(:votes, -1, voter)
end
def powervote(voter)
self.add_or_update_evaluation(:powervotes, 1, voter)
end
def score
self.reputation_for(:score).to_i
end
end
选民.rb
class Voter < ActiveRecord::Base
has_many :polls
has_reputation :voter_powervotes,
source: [reputation: :powervotes, of: :polls]
def powervotes
self.reputation_for(:powervotes).to_i
end
end
当我作为用户进行投票时 powervote() 然后调用 Voter.powervotes 它返回 0。什么给出了?我觉得我一个人能走到这一步真是个奇迹,但现在我迷路了。也许这是不可能的,我只需要手动查询数据库?