Skip to content

Instantly share code, notes, and snippets.

@lancejpollard
lancejpollard / awesome_nested_set_optimization_helper.rb
Created July 2, 2010 01:39
Goal: Convert entire hierarchy of models into tree in 1 database call, such that you can loop through them depth-first
def simple_nested_set(clazz) # Post for example
stack = [] # Post for example
result = []
clazz.all(:order => "lft").each do |node|
if stack.empty?
stack.push({:node => node, :children => []})
result << stack.last
next
end
if stack.last[:node].lft < node.lft && node.lft < stack.last[:node].rgt