Допустим, у меня есть таблица с 100 обзорами продуктов.У каждого отзыва есть «id», «product_id» и «score».Теперь, что я хочу сделать, это представить среднюю оценку для каждого продукта ... Так есть ли способ сделать запрос к БД, используя Rails для этого?Я уверен, что должно быть, но я не могу понять это.Я хотел бы, чтобы произошло следующее:
Toyota Corolla 70%
Toyota Camry 78%
Toyota Avalon 80%
.. очевидно, на основе нескольких обзоров для каждого, которые усреднены, но представлены вышеописанным способом.
ОБНОВЛЕНИЕ:
Для тех, кто заинтересован в решении
Это в контроллере:
@ordered_hash = Review.group('aidmodel_id').average('score')
@keys = @ordered_hash.keys
@reviews = Review.where(:aidmodel_id=>@keys).uniq_by {|x| x.aidmodel_id}
Это в представлении:
<% @reviews.each do |review| %>
<%= review.aidmodel.id %>
<%= @ordered_hash[review.aidmodel_id] %>
<% end %>
Строка @ordered_hash[review.aidmodel_id]
обеспечиваетУсредненная оценка модели помощи с желаемым идентификатором.