2011-04-30 40 views

回答

3
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 
+0

感谢唯一的问题是,这是错误的方向如何使命令ny DECS – 2011-04-30 23:47:50

+0

如何创建计数器缓存列?我已经搜索了互联网,发现这个http://railscasts.com/episodes/23-counter-cache-column,但它不是rails 3 – 2011-04-30 23:50:12

+0

我找到了一个解决方案如何扭转顺序:Tag.all.sort_by {| t | t.konkurrancers.count} .reverse – 2011-04-30 23:56:52