Ruby on Rails: Bestellen Sie Benutzer basierend auf den durchschnittlichen Bewertungen mit den meisten Rezensionen?
Ich kann die Artikel und deren Bewertungen im Shop anzeigen. Wie bekomme ich die Top-Artikel mit den meisten Bewertungen? Meine Bewertungen befinden sich in einer anderen Datenbanktabelle als Shop und Artikel.
Regler
@shop = Shop.find(params[:id])
@item = Item.where(:shop_name => @shop.name)
Aussicht
<% @item.each do |u| %>
<%= u.reviews.average('rating') %>
<%= u.reviews.count %>
<% end %>
Gibt es eine einfache Methode, bei der ich basierend auf der höchsten Bewertung mit den meisten Bewertungen oder so etwas bestellen kann? Oder ist es vielleicht besser, die höchste Bewertung und die meisten Bewertungen zu trennen und die Benutzer auf einen Link klicken zu lassen, um zu filtern?
Vielen Dank
BEARBEITEN:
Also habe ich eineshop
, item
, review
Tabelle.
In meinemEinzelteilmodell
has_many :reviews, as: :reviewable
has_many :shops
In meinemBewertungen Modell undGeschäfte Modell ist
belongs_to :user
In meiner Bewertungstabelle wird festgelegt, dass, wenn ein Benutzer ein Element bewertet, der Datenbank ein Datensatz hinzugefügt wird und ich das verwendeaverage
aller Datensätze, die mit diesem Artikel verknüpft sind, und zeigen ihn im Shop an.