Скрипт для многоуровнего меню на RoR

Код строит рекурсивно меню. Используя nested_set, который дает методы roots и children.

code: #ruby
      class MenuBuilder
        @@html = ""
 
        def initialize ids
          @ids = ids
        end
 
        def get_menu
          build_menu roots
        end
 
        private
        def build_menu parents
          @@html += "<ul>"
          parents.each do |menu|
            @@html += "<li><a href='/#{menu.link}' title='#{menu.title}'><span>#{menu.title}</span></a>"
            build_menu menu.children if menu.children.any?
            @@html += "</li>"
          end
          @@html += "</ul>"
        end
 
        def roots
          Menu.roots
        end
      end

автор: Мохнатый

Поделиться:

Похожие статьи: