2011-02-02 6 views
0

저는 약간 붙어있어 아마도 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 

, 다른 parent_page_id가 테스트 페이지의 id로 설정됩니다.

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

다음 <ul> 요소가 표시되지만 페이지를 반복하지 않습니다.

나는 AR 방법을 오해하고 있습니까? 거기에 <li> 요소가있을 것으로 예상됩니다.

답변

0

가. 어리석은 벌레.

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

수정 됨.

관련 문제