Ruby on Rails: zamawiaj użytkowników na podstawie średnich ocen z większością recenzji?
Mogę wyświetlić elementy i ich recenzje, które znajdują się w sklepie. Jak zdobyć najlepsze przedmioty z większością opinii? Moje recenzje są w innej tabeli bazy danych niż sklep i przedmiot.
Kontroler
@shop = Shop.find(params[:id])
@item = Item.where(:shop_name => @shop.name)
Widok
<% @item.each do |u| %>
<%= u.reviews.average('rating') %>
<%= u.reviews.count %>
<% end %>
Czy istnieje łatwa metoda, w której mogę zamawiać w oparciu o najwyższą ocenę z większością recenzji lub czymś? A może lepiej oddzielić najwyższą ocenę od większości recenzji i pozwolić użytkownikom na kliknięcie linku do filtrowania?
Dzięki
EDYTOWAĆ:
Więc mamshop
, item
, review
stół.
W moimmodel przedmiotów
has_many :reviews, as: :reviewable
has_many :shops
W moimrecenzje modelu imodel sklepów jest
belongs_to :user
W mojej tabeli recenzji jest ustawiony tak, że gdy użytkownik przegląda element, dodaje rekord do bazy danych i używamaverage
wszystkich rekordów powiązanych z tym elementem i wyświetlających go w sklepie.