我想创建一个简单的菜单,该菜单按类别(标签)中的产品数量排序
像:
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
答案 0 :(得分:3)
def tags
@tags = Tag.all.sort_by{|t| -t.konkurrancers.count }
end
如果这样做证明太慢,你应该将一个counter_cache列(名为children_count)添加到tags表中以获得速度,这样你就可以这样做:
def tags
@tags = Tag.all(:order => 'children_count DESC')
end