1

我有这个代码来列出某个页面的所有孩子:

  <ul class="sidenav">
    <%= render :partial => '/refinery/menu_branch', 
      :collection => refinery_menu_pages.select{|p| p.parent_id == @page.root.id},
      :locals => {
        :hide_children => false,
        :apply_css => true 
      } -%>
  </ul>

e.g.

Item1
  cItem1
  cItem2

如何修改代码以显示子页面的子页面?例如:

Item1
 cItem1
 cItem2
   ccItem1
   ccItem2
   ccItem3
Item2
4

1 回答 1

1

由于这段代码是递归的,我很惊讶它还没有显示多个级别。也就是说,menu_branch partial 调用 menu_branch partial,直到它的 children 为 nil。

这是 RefineryCMS 2.0 中 _menu_branch 部分的代码:

<%= render :partial => '/refinery/menu_branch', :collection => children,
                 :locals => {
                   :apply_css => local_assigns[:apply_css],
                   :hide_children => !!hide_children,
                   :menu_levels => local_assigns[:menu_levels]
                 } -%>

请注意,这包括 :menu_levels。您可以尝试复制和粘贴它,或者只是local_assigns[:menu_levels]用一个整数替换您想要显示的级别数。

于 2013-04-15T02:21:17.870 回答