2010-12-12 72 views
0

我想用血统制作一个simpel treelistmenu。Rails ancestry treemenu帮助

这是我考虑的代码,它不工作:

<ul> 
<% for cat_opg in CatOpg.roots %> 
<li> <%= cat_opg.navn %><li> 
<% for cat_opg in CatOpg.children %> 
<li> <%= cat_opg.navn %><li> 
</ul> 
<% end %> 
</ul> 
<% end %> 

而且我的控制器: DEF清单当然 @cat_opg = CatOpg.find(:所有) 结束

我想使这个simpel树形菜单为:

- 儿童

- 儿童

我不知道我做错了。 PS:我是一名导轨初学者

+0

我给了一个解决类似的问题[这里](http://stackoverflow.com /问题/ 4308787 /使用-Rails的多态性换嵌套评论/ 4308919#4308919)。 – 2010-12-12 08:21:53

+0

[This one](http://stackoverflow.com/questions/13578945/how-to-render-nested-ul-list-for-ancestry-tree-view/14431802#14431802)为我工作 – maxcobmara 2013-04-22 15:40:08

回答

0

亚历克斯感谢您的回答。

现在,它的工作原理

控制器:@cat_opg = CatOpg

和视图:

<ul> 
    <% @cat_opg.roots.each do |cat_opg_root| %> 
    <li> <%= cat_opg_root.navn %></li> 
     <% unless cat_opg_root.children.empty? %> 
     <ul> 
     <% cat_opg_root.children.each do |cat_opg_child| %> 
      <li> <%= cat_opg_child.navn %></li> 
     <% end %> 
     </ul> 
    <% end %> 
    <% end %> 
</ul> 
1

首先,您正在考虑建模,而不是局部变量。
其次,你正在重写变量。

应该是这样的:

<ul> 
<% cat_opg.roots.each do |cat_opg_root| %> 
<li> <%= cat_opg_root.navn %><li> 
<% cat_opg_root.children each do |cat_opg_child| %> 
    <li> <%= cat_opg_child.navn %><li> 
    </ul> 
<% end %> 
</ul> 
<% end %>