Navigation Helper Active Record - PullRequest
       1

Navigation Helper Active Record

0 голосов
/ 03 февраля 2011

Я немного застрял и, вероятно, неправильно понимаю AR.Вот что у меня есть:

module PagesHelper

  def page_loop(pages)
    output = ""

    pages.each do |page|
      output << "<li><a href=\"" << page.title << "\">" << page.title << "</a>"

      children = page.children

      if children.size > 0
        output << "<ul>"
        page_loop(children)
        output << "</ul>"
      end

      output << "</li>"
    end

    return output
  end

  def navigation_list
    parent_pages = Page.where("parent_page_id IS NULL").order("title")

    output = "<ul>"
    output << page_loop(parent_pages)
    output << "</ul>"
  end
end

А затем в модели следующее:

def children
  Page.where("parent_page_id = ?", id)
end

По некоторым причинам он возвращает следующий вывод, где у меня есть две страницы,test, а другой с его parent_page_id, установленным в id тестовой страницы.

<ul><li><a href="test">test</a><ul></ul></li></ul> 

Таким образом, он получает следующие <ul> элементы, но не перебирает страницы.Я неправильно понимаю методы AR?Я ожидаю, что там будет элемент <li>.

1 Ответ

0 голосов
/ 03 февраля 2011

Г. Глупый жук.

  if children.size > 0
    output << "<ul>"
    output << page_loop(children)
    output << "</ul>"
  end

Исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...