2011-04-30 5 views
2

私はカテゴリにどのように多くの製品(タグ)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 

答えて

3
def tags 
    @tags = Tag.all.sort_by{|t| -t.konkurrancers.count } 
end 

あなたはこれを行う場合は、あまりにもあなたがこれを行うことができますので、あなたは、速度のためのタグテーブルに(children_countという名前)counter_cache列を追加する必要が遅くなることを証明:

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

感謝唯一の問題はそれが間違った方向です。どのように注文するのですか?DECS –

+0

どのようにカウンタキャッシュ列を作成するのですか?私はインターネットを検索し、これはhttp://railscasts.com/episodes/23-counter-cache-columnを見つけましたが、それはレールではありません3 –

+0

私は順序を逆にする方法を見つけました:Tag.all.sort_by {| t | t.konkurrancers.count} .reverse –

関連する問題