【问题标题】:Rails simple navigation, nested setRails 简单导航,嵌套集
【发布时间】:2011-06-29 13:50:07
【问题描述】:

我使用简单导航构建了导航菜单并构建了我在此菜单中显示的嵌套类别。

navigation.rb 代码:

  navigation.items do |primary|
    Category.roots.map do |root|
      primary.item ":root_#{root.id}", root.title, category_path(root) do |secondary|
        root.descendants.map do |desc|
          secondary.item ":desc_#{desc.id}", desc.title, category_path(desc)
        end
      end
    end
  end

问题是:如何在我的菜单中显示所有级别的类别。该代码仅适用于两级嵌套。

提前致谢

【问题讨论】:

    标签: ruby-on-rails ruby nested-sets


    【解决方案1】:

    请看一下refinery-cms 是如何做到的。

    _menu.html.erb 与您所拥有的很接近。 除此之外,它还有另一个名为 _menu_branch.html.erb 的部分,它递归地呈现菜单的子菜单。

    https://github.com/resolve/refinerycms/blob/master/core/app/views/refinery/_menu.html.erb https://github.com/resolve/refinerycms/blob/master/core/app/views/refinery/_menu_branch.html.erb

    从 github 截取的代码:

    _menu.html.erb

    <nav id='<%= dom_id %>' class='<%= css %>'>
      <ul>
        <%= render :partial => '/refinery/menu_branch', :collection => roots,
                   :locals => {
                     :hide_children => hide_children,
                     :sibling_count => (roots.length - 1),
                     :apply_css => true #if you don't care about class='first' class='last' or class='selected' set apply_css to false for speed.
                   } -%>
      </ul>
    </nav>
    

    _menu_branch.html.erb

    <li<%= ['', css].compact.join(' ').gsub(/\ *$/, '').html_safe %>>
    <%= link_to(menu_branch.title, main_app.url_for(menu_branch.url)) -%>
      <% if (children = menu_branch.children unless hide_children).present? -%>
        <ul class='clearfix'>
          <%= render :partial => '/refinery/menu_branch', :collection => children,
                     :locals => {
                       :apply_css => local_assigns[:apply_css],
                       :hide_children => !!hide_children
                     } -%>
        </ul>
      <% end -%>
    </li>
    

    【讨论】:

      【解决方案2】:

      如果这有帮助,您将不得不使用递归,您可以在此处查看示例:Recursive Rails Nested Resources

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-17
        • 1970-01-01
        相关资源
        最近更新 更多