У рельсов есть много через ассоциацию, как заказать по количеству детей? - PullRequest
2 голосов
/ 01 мая 2011

Я хочу создать простое меню, упорядоченное по количеству товаров в категории (теги)

Как:

Television (10)
Toothpase  (5)
Computer   (3)

Мой контроллер:

def tags
  @tags = Tag.all
end 

Мой взгляд:

<% @tags.each do |tags| %>
  <li><%= tags.name %>    <%= tags.konkurrancers.count %></li>
<% end %>

Моя модель:

has_many :konkurrancers, :through => :tagsmenus

1 Ответ

3 голосов
/ 01 мая 2011
def tags
  @tags = Tag.all.sort_by{|t| -t.konkurrancers.count }
end

Если вы делаете это слишком медленно, вы должны добавить столбец counter_cache (с именем children_count) в таблицу тегов для скорости, так что вы можете сделать это:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...