我试图通过has_many关系来计算我的rails应用视图中的平均评分。
型号:
class Review < ActiveRecord::Base
belongs_to :product
attr_accessible :rating, :review
belongs_to :user
end
class Product < ActiveRecord::Base
attr_accessible :name
has_many :reviews
has_many :supplements
acts_as_taggable
end
控制器:
@products = Product.all
查看:
<% @products.each do |product| %>
<%= product.NOT SURE %>
<% end %>
我希望在视图中显示该给定产品的平均评分,但我不确定如何。有什么建议吗?
答案 0 :(得分:3)
在您看来,您需要以下内容:
<% @products.each do |product| %>
<%= product.average_rating %>
<% end %>
现在你只需要进行average_rating,这可以进入模型:
def average_rating
if self.reviews.size > 0
self.reviews.average(:rating)
else
'undefined'
end
end
因此,average_rating总结了评论评级,并除以平均评分数。您可以对格式等进行润色。