我有一个供作者和书评人使用的应用程序。最近,我总结了一个功能,版主可以将评论投票为有帮助或无帮助,这决定了评论者的分数(以检查他们的评论(。我有一个评论模型,默认情况下,表格上的布尔列设置为false,有用且not_helpful。当审阅人单击审阅上的链接时,将显示是否有帮助,然后将该审阅记录的布尔值更新为 true。我正在尝试在该评论者的个人资料上构建一张记分卡,我使用数学从用户的总评论计数中减去non_helpful评论,然后将该总和除以总评论计数以得出该评论者分数的百分比。从本质上讲,当他们的评论没有帮助时,这是对他们的一个标记,就像在测试中弄错了问题一样。因此,在所有评论中,我们希望从总评论中减去所有无用的评论,然后将该答案除以总评论以获得他们的分数。到目前为止,我有这个:
users_controller.rb
def profile
@current_user = current_user
@helpful = current_user.reviews.where(helpful: true)
@unhelpful = current_user.reviews.where(unhelpful: true)
@reviews = current_user.reviews
unhelpful = @unhelpful.count
total = @reviews.count
subtotal = total - unhelpful
@score = subtotal / total
end
简介.html.erb
欢迎审稿人,
<h2>How I'm doing</h3>
<table>
<th>Total Reviews</th>
<th>Helpful Reviews</th>
<th>Unhelpful Reviews</th>
<th>Score</th>
<tr>
<td><%= current_user.reviews.count %></td>
<td><%= @helpful.count %></td>
<td><%= @unhelpful.count %></td>
<td><%= number_to_percentage(@score * 100, precision: 0)
%></td>
</tr>
</table>
我以前从未使用运算符做过简单的 ruby 数学运算,也没有将变量设置为活动记录对象并调用它们 count,那么正确的方法是什么?现在用户得分是 0%,这是不正确的,哈哈,因为我登录的当前评论者总共有 4 条评论,2 条有帮助,2 条无用,根据我试图实现的评分系统,他们应该得到 50% 的分数
它被称为"整数除法"。当两个操作数都是整数时,结果也将是整数。所以要么让一个/两个操作数浮点
@score = subtotal.to_f / total
或使用fdiv
@score = subtotal.fdiv(total)