我想按用户计算排名的平均值。 我实际上有一个属于帖子/推送/用户模型的模型审查。 其操作是使用排名表中的两个变量:user_id: & : rating。 目前,我的页面没有错误,但平均值仍然为零,而通常他有相关的评级。
我的代码
Profiles_controller/ Action 展示:
def show
if @user.cooker?
@pushs = Push.where(taked_by: @user.id).reverse
@reviews = Review.where(user_id: @user.id)
if @user.reviews.blank?
@average_review = 0
else
@average_review = @user.reviews.average(:rating).round(2)
end
else
@pushs = @user.pushs.reverse
end
end
个人资料显示 View :
<h2> Avis moyen :</h2>
<div class="average-review-rating" data-score= "<%= @average_review %>">
<script>
$('.average-review-rating').raty({
readOnly: true,
path: '/assets/',
score: function() {
return $(this).attr('data-score')
}
});
</script>
路线:
resources :posts do
resources :pushs do
resources :reviews
end
end
如果您对为什么我的个人资料 View 中没有平均值有任何想法,您将成为我的男人!
最佳答案
尝试跳过第二个条件,如果没有它,此代码应该可以正常工作:
if @user.cooker?
@pushs = Push.where(taked_by: @user.id).reverse
@reviews = Review.where(user_id: @user.id)
@average_review = @user.reviews.average(:rating).try(:round, 2)
else
@pushs = @user.pushs.reverse
end
关于jquery - 访问我的排名以计算我的用户的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37812455/