1
我正在尋找顯示從嵌套集數據的HTML樹。從嵌套集生成樹
由於顯示的樹並不總是顯示所有分支,所以葉節點不能通過減去rgt值來識別。
1 Drinks 27
/ | \
2 Coffee 3 4 Tea 20 21 Milk 26
/ \
5 Black 8 9 Green 19
/ \
10 China 14 15 Africa 18
我一直在尋找,以適應下面的代碼: How to render all records from a nested set into a real html tree
解決方法:
高興地收到代碼改進建議:)
def tree_from_set(set, start_level)
buf = "<ul>"
parent = []
prev = set[start_level]
set[start_level+1..-1].each do |node|
if node.lft.between?(prev.lft, prev.rgt)
# Previous was the parent
buf << open_parent_tag(prev)
parent.push(prev)
else
if node.lft.between?(parent.last.lft, parent.last.rgt)
#Previous was a child
buf << leaf_tag(prev)
else
buf << leaf_tag(prev)
begin
buf << "</ul></li>"
parent.pop
end until parent.empty? or node.lft.between?(parent.last.lft, parent.last.rgt)
end
end
prev = node
end
buf << leaf_tag(prev)
begin
buf << "</ul></li>"
parent.pop
end until parent.empty?
buf << "</ul>"
buf.html_safe
end
def open_parent_tag(node)
%{ <li>
#{link_to(node.name, node)}
<ul>
}
end
def leaf_tag(node)
content_tag(:li, link_to(node.name, node))
end
嘗試使用這個:http://stackoverflow.com/questions/1372366/how-to-render-all-records-from-a-nested-set-into-a-真實的HTML樹 – 2015-04-15 14:26:06