我目前正在尝试在我的应用程序中实现一个简单的星级审查系统,并且我在大多数情况下都使用它。但问题是我无法让评论明星显示对商店的平均评价。有谁介意帮我理解什么是坏的?
存储/ show.html.erb:
<div class="star-rating" data-score= <%= @avg_review %> ></div>
<em><%= "#{@reviews.length} reviews" %></em>
这包含在视图的底部:
<script>
$('.star-rating').raty({
path: '/assets/',
readOnly: true,
score: function() {
return $(this).attr('data-score');
}
});
</script>
stores_controller.rb:
def show
@reviews = Review.where(store_id: @store.id).order("created_at DESC")
if @review.blank?
@avg_review = 0
else
@avg_review = @reviews.average(:rating).round(2)
end
end
谢谢你的时间。
答案 0 :(得分:1)
放入您的模型商店:
def average_rating
reviews.count == 0 ? 0 : reviews.average(:rating).round(2)
end
(如果没有星= 0,否则我们平均音符)
在您看来:
<span id="average_rating"></span>
使用脚本:
<script>
$('#average_rating').raty({
path: '/assets',
readOnly: true,
score: <%= @store.average_rating %>
});
</script>