2011-01-07 17 views
0

モデルカテゴリとモデルWebリンクがあります。カテゴリhas_many WeblinkおよびWeblink belongs_to Category。 |カテゴリー|関連モデルのネスト出力

<ul> 

<%する@ categories.eachを実行します。今、私は何かのリンクこのビューでは、すべてのウェブリンクは、そのカテゴリに属する​​カテゴリ内のすべてのカテゴリを表示したいです%>

  • <%= category.category_name%>
  • <%@ weblinks.each do | weblink | %>
  • <% = weblink.category_name LINK_TO weblink.link_name、weblink.link_url%>
  • <%端%> <%端Iを有するコントローラで%>

    @categories = Category.all 
    

    @weblinks = Weblink.all これは、特定のカテゴリに属する​​ものだけでなく、すべてのカテゴリとすべてのカテゴリ内のすべてのWebリンクを表示します。これをどうすれば解決できますか?

    答えて

    0

    あなたのビューコードは、この

    <% @categories.each do |category| %> 
        <%= category.name > 
        <% category.weblinks.each do |weblink| %> 
         <%= link_to weblink.name, weblink.link_url %> 
        <% end -%> 
    <% end -%> 
    

    のようになります。また、あなたのコントローラ、を照会するときにすべてのカテゴリには、次のようなウェブリンクモデルも含める必要があります。

    @categories = Category.all(:include => :weblinks) 
    
    +0

    ありがとうございました:-) – John

    0

    範囲おhas_manyのを取得するマクロを使用して外側のカテゴリに内部ループ:

    <% @categories.each do |category| %> 
        <%= category.category_name %> 
        <% category.weblinks.each do |weblink| %> 
        <%= link_to weblink.link_name, weblink.link_url %> 
        <% end %> 
    <% end %> 
    
    +0

    しかし、コントローラ?私はちょうど言うことができません:@ category = allと@ webblinks = Weblink.all? – John

    +0

    私はあなたのカテゴリーのクラスに "has_many:weblinks"とあなたのWeblinkの "belongs_to:category"と言ってきました。そしてCategoryのインスタンスに対してカテゴリー#weblinksはデータベースから正しいcategory_idを持つすべてのウェブリンクを検索するか、以前に取り出されたウェブリンク(例えば、Victorが示唆するように、コントローラ内でCategory.allを実行するときに ":include =>:weblinks"を使用した場合) – Mortice

    関連する問題