Ruby on rails Rails有多个通过关联的子项如何排序?

Ruby on rails Rails有多个通过关联的子项如何排序?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我想创建一个简单的菜单,根据类别(标签)中的产品数量进行排序 比如: 我的控制器: def tags @tags = Tag.all end 我的看法是: <% @tags.each do |tags| %> <li><%= tags.name %> <%= tags.konkurrancers.count %></li> <% end %> 如果您这样做的速度太慢,您应该在tags表中添加一个计数器缓存

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

比如:

我的控制器:

def tags
  @tags = Tag.all
end 
我的看法是:

<% @tags.each do |tags| %>
  <li><%= tags.name %>    <%= tags.konkurrancers.count %></li>
<% end %>
如果您这样做的速度太慢,您应该在tags表中添加一个计数器缓存列(名为children\u count)以提高速度,这样您就可以执行以下操作:

def tags
  @tags = Tag.all(:order => 'children_count DESC')
end

谢谢,唯一的问题是方向错了,我如何下订单ny DECSHow来创建计数器缓存列?我在互联网上搜索了一下,发现了这个,但不是rails 3I,我找到了一个解决方案,如何颠倒顺序:Tag.all.sort_by{t|t.konkurancers.count};Rails 2和Rails 3的说明相同。此外,请尝试通过{t|t-t.koncurrancers.count}对Tag.all.sort_进行反向排序,而不使内存中创建的对象加倍
has_many :konkurrancers, :through => :tagsmenus
def tags
  @tags = Tag.all.sort_by{|t| -t.konkurrancers.count }
end
def tags
  @tags = Tag.all(:order => 'children_count DESC')
end