【发布时间】:2014-04-16 23:05:03
【问题描述】:
我在我的 Rails 应用程序中使用 acts_as_votable 和 devise_invitable。
用户可以发表评论,并且他们的 cmets 是可投票的。
每个用户都有一个业力/分数
目前我在他们的个人资料上显示用户业力。我实际上并没有将他们的分数保存在数据库中。我只是用这个来计算它:
<% comment_vote_count = current_user.comments.map{|c| c.votes.count}.sum
comment_vote_count ||=0
comment_vote_count *= 2
total_vote_count = comment_vote_count + current_user.base_score %>
base_score 充当可以手动更改的锚点。
我希望在评分机制中添加一些内容。对于他们邀请的每个实际接受邀请并注册的用户,我想为任何给定用户添加 10 分。
所以计算用户业力的新逻辑应该是,在 cmets 上获得的票数乘以 2,每次成功邀请加 10 分,再加上基本分数。
更重要的是如何将其保存在数据库中?我想在用户表中添加一个名为 score 的列。但是如何让它更新呢?每次用户加载他们的个人资料时,我是否让控制器更新它?
【问题讨论】:
标签: ruby-on-rails ruby devise-invitable