Ruby on Rails: заказывать пользователей на основе среднего рейтинга с большинством отзывов?
Я могу отображать предметы и их отзывы, которые есть в магазине. Как я могу получить лучшие позиции с большинством отзывов? Мои отзывы находятся в другой таблице базы данных, чем магазин и товар.
контроллер
@shop = Shop.find(params[:id])
@item = Item.where(:shop_name => @shop.name)
Посмотреть
<% @item.each do |u| %>
<%= u.reviews.average('rating') %>
<%= u.reviews.count %>
<% end %>
Есть ли простой способ, где я могу заказать на основе самого высокого рейтинга с большинством отзывов или что-то? Или, может быть, лучше разделить наивысший рейтинг и большинство отзывов и позволить пользователям нажимать на ссылку для фильтрации?
Спасибо
РЕДАКТИРОВАТЬ:
Итак, у меня естьshop
, item
, review
Таблица.
В моеммодель предметов
has_many :reviews, as: :reviewable
has_many :shops
В моеммодель отзывов а такжемодель магазинов является
belongs_to :user
В моей таблице рецензий установлено, что когда пользователь просматривает элемент, он добавляет запись в базу данных, и я используюaverage
всех записей, связанных с этим предметом и отображать его в магазине.