我正在尝试按照本教程进行操作,但遇到了困难:向 Rails 4 模型添加 5 星评级功能。
我是 javascript 和 ajax 的初学者,所以我花了几个小时学习 ajax 如何与 javascript 一起工作。我相信问题与average_rating
方法在哪里(导轨问题?)有关。
def average_rating
ratings.sum(:score) / ratings.size
end
目前我已经完全按照教程的说明进行操作,同时用评论替换评论。在教程中,它说要在评论模型中定义 average_rating (我的是在评论模型中),我不确定我为什么要这样做。
我还添加了这个(不确定它是属于当前控制器还是属于评级控制器):
#this is the controller used for the view which displays the stars
def page
@rating = Rating.where(review_id: @review.id, user_id: @current_user.id).first
unless @rating
@rating = Rating.create(review_id: @review.id, user_id: @current_user.id, score: 0)
end
end
当我尝试在此处加载页面时出现错误:ZeroDivisionError
下面说divided by 0
并突出显示了这一行score: <%= @review.average_rating %>,
更新当我从具有average_rating 的视图中删除此脚本时,my_rating 会显示星星。所以有些东西弄乱了平均部分:
<script> #did not delete this line
$('#star').raty({
readOnly: true,
score: <%= @review.average_rating %>,
path: '/assets'
});
删除部分^^^