Rails有许多通过关联如何按子级数量排序的方法



我想创建一个简单的菜单,根据类别(标签(中的产品数量进行排序

类似:

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

相关内容

  • 没有找到相关文章

最新更新