2016-03-27 14 views
0

メニュー作成者をドロップダウンで作成しようとしていますが、ドロップダウンメニューの子を取得する以外はすべて動作しています。Ruby on Rails、テンプレート内で親の子を取得する

私の周りに検索しようとしましたが、私は見つけることができる何も任意のものではなかった私のApplicationControllerに

def set_links 
@alllinks = Link.all 
end 

link.rb

class Link < ActiveRecord::Base 
     has_many :children, class_name: "Link", foreign_key: "parent_id" 
     belongs_to :parent, class_name: "Link" 
    end 

とレイアウト

 <% @alllinks.each do |link| %> 
     <% if link.dropdown == true %> 
      <li class="dropdown"> 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><%= link.text %> <span class="caret"></span></a> 
      <ul class="dropdown-menu"> 
      <li><a href="<%= link.url %>"><%= link.text %></a></li> 
      </ul> 
      </li> 
     <% else %> 
      <% if link.dropdown == false && link.parent == nil %> 
      <li><a href="<%= link.url %>" target="<%= link.target %>"><%= link.text %></a></li> 
      <% end %> 
     <% end %> 
     <% end %> 

助けて。

答えて

1

は、次の試してみてください。

def set_links 
    # load only the parent links 
    # no need to load all the links 
    @root_links = Link.where(parent: nil) 
end 

あなたapplication_controller.rbでは、あなたのビューで:完全に働いた

<% @root_links.each do |link| %> 
    <% if link.dropdown == true %> 
    <li class="dropdown"> 
     <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><%= link.text %> <span class="caret"></span></a> 
     <ul class="dropdown-menu"> 
     <% link.children.each do |child_link| %> 
     <li><a href="<%= child_link.url %>"><%= child_link.text %></a></li> 
     <% end %> 
     </ul> 
    </li> 
    <% else %>  
    <li><a href="<%= link.url %>" target="<%= link.target %>"><%= link.text %></a></li> 
    <% end %> 
<% end %> 
+0

は、ありがとうございました! – Xerukm

関連する問題