我想创建一个简单的菜单,根据类别(标签(中的产品数量进行排序
类似:
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
def tags
@tags = Tag.all.sort_by{|t| -t.konkurrancers.count }
end
如果你这样做太慢了,你应该在标签表中添加一个counter_cache列(名为children_count(来提高速度,这样你就可以这样做了:
def tags
@tags = Tag.all(:order => 'children_count DESC')
end