2012-11-27 99 views

回答

5

我相信它的答案,社區,請編輯和調整這篇文章,如果這是錯誤的。

像這樣創建

def nested_groups(groups) 
    content_tag(:ul) do 
     groups.map do |group, sub_groups| 
     content_tag(:li, group.name + nested_groups(sub_groups)) 
     end.join.html_safe 
    end 
end 

一個輔助方法,然後,祖先對象傳遞給方法的觀點:

<%= nested_groups(@groups.arrange) %> 

它將使UL列表的正確途徑。

+0

編輯答案略 – maxcobmara

+1

它應該是內content_tag'content_tag(另一.html_safe: li,(group.name + nested_groups(sub_groups))。html_safe)' –

+0

如果'groups'是JSON字符串,代碼將會是什麼樣子?我試圖將嵌套的JSON轉換爲ul/li。任何幫助都是極好的! – iamtoc

2

以下代碼將生成正確的嵌套列表。例如,請參閱W3schools

首先創建一個幫助:

module AttributeHelper 
    def nested_attributes(attributes) 
    content_tag :ul do 
     attributes.each do |attribute| 
      concat(content_tag(:li, attribute.name)) 
      if attribute.has_children? 
       concat(nested_attributes(attribute.children)) 
      end 
     end 
    end 
    end 
end 

然後使用您的視圖輔助方法:

= nested_attributes(@attributes.roots)