Ruby on Rails: ¿Ordenar los usuarios según las calificaciones promedio con la mayoría de las críticas?
Soy capaz de mostrar los artículos y sus comentarios que están dentro de la tienda. ¿Cómo consigo los mejores artículos con la mayoría de las revisiones? Mis comentarios están en otra tabla de base de datos que la tienda y el artículo.
Controlador
@shop = Shop.find(params[:id])
@item = Item.where(:shop_name => @shop.name)
Ver
<% @item.each do |u| %>
<%= u.reviews.average('rating') %>
<%= u.reviews.count %>
<% end %>
¿Existe un método fácil en el que pueda realizar pedidos según la calificación más alta con la mayoría de las reseñas o algo así? ¿O tal vez es mejor separar la calificación más alta y la mayoría de las revisiones y permitir a los usuarios hacer clic en un enlace para filtrar?
Gracias
EDITAR:
Así que tengo unshop
, item
, review
mesa.
En miartículos modelo
has_many :reviews, as: :reviewable
has_many :shops
En mimodelo de opiniones ymodelo de tiendas es
belongs_to :user
En mi tabla de revisiones, está configurado de modo que cuando un usuario revisa un elemento, agrega un registro a la base de datos y uso elaverage
de todos los registros que están asociados con ese artículo y mostrarlo dentro de la tienda.