2015-01-01 5 views
0

acts_as_tree 또는 조상 계층 구조를 통해 루프 :이 같은 목록에어떻게 각각의 헤더는 헤더 및 항목 배열이 곳과 같은 구조를 가지고 싶습니다

header 
    header 
    \item 
    item 
    item 
    header 
    header 
     item 
header 
    item 
    item 

을하고합니다

header 
header 
item 
item 
item 
header 
header 
item 
header 
item 
item 

중첩 된 6 개의 깊이를 처리 할 수 ​​있어야합니다. 지금 당장은 각 루프를 수행하고 항목이 있는지 또는 헤더가 있는지 확인하십시오. 하지만 난 정말이 6 수준을 갖고 싶지 않아요 - 나는 루프 동안하지만 그것을 어떻게 해야할지 모르겠 일부하고 싶습니다.

답변

0

현재 오프라인 상태 인 웹 사이트를 가리키는 사이트가 많이 있습니다. Lucky archive.org가 도와 드리겠습니다! [link]

이렇게 구현했습니다. 도우미 : 뷰에서

def find_all_subcategories(category) 
    if category.children.size > 0 
    ret = '<ul>' 
    category.children.each { |subcat| 
     if subcat.children.size > 0 
     ret += '<li>' 
     ret += link_to subcat.name, subcat 
     ret += find_all_subcategories(subcat) 
     ret += '</li>' 
     else 
     ret += '<li>' 
     ret += link_to subcat.name, subcat 
     ret += '</li>' 
     end 
    } 
    ret += '</ul>' 
    ret.html_safe 
    end 
end 

: 그리고

ul 
    - for category in @categories 
    li 
     = link_to category.name, category 
     = find_all_subcategories(category) 

그냥 당신이 당신의 모델에 사용하는 속성을 확인합니다. 제 경우에는 name이었습니다.

그래서 늦었 겠지만 다른 사람들에게 도움이 될 수 있습니다.