Ruby on Rails: Ordena usuários com base em avaliações médias com a maioria dos comentários?

Eu sou capaz de exibir os itens e seus comentários que estão dentro da loja. Como faço para obter os melhores itens com mais avaliações? Minhas revisões estão em outra tabela de banco de dados que loja e item.

Controlador

@shop = Shop.find(params[:id]) 
@item = Item.where(:shop_name => @shop.name)

Visão

<% @item.each do |u| %>
  <%= u.reviews.average('rating') %>
  <%= u.reviews.count %>
<% end %>

Existe um método fácil onde posso encomendar com base na classificação mais alta com a maioria das críticas ou algo assim? Ou talvez seja melhor separar a classificação mais alta e a maioria das resenhas e permitir que os usuários cliquem em um link para filtrar?

obrigado

EDITAR:

Então eu tenho umshop, item, review mesa.

No meumodelo de itens

has_many :reviews, as: :reviewable
has_many :shops

No meumodelo de avaliações emodelo de lojas é

belongs_to :user

Na minha tabela de comentários, é definido assim quando um usuário revisa um item, ele adiciona um registro ao banco de dados e eu uso oaverage de todos os registros associados a esse item e exibi-lo dentro da loja.

questionAnswers(1)

yourAnswerToTheQuestion