2

我正在尝试通过 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 %>

我希望这可以在视图中显示给定产品的平均评分,但不确定如何。有什么建议吗?

4

1 回答 1

4

在你看来,你想要这样的东西:

<% @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 将评论评分相加并除以平均评分数。你可以把它打磨成格式等。

于 2013-05-25T01:50:19.853 回答