Getting a a list of acts_as_tree items with hierarchy

I'm using acts_as_tree to nest categories n-levels deep and am wondering
if anyone out there in Ruby-land knows the best, least expensive way to
start with top level categories and then loop recursively through each
category going as many levels deep as needed, and then moving to the
next top level category, etc.


I've added a method in my Forum model code just for this:

   def descendants { |f| !f.children.empty? ? f.children + [f]:
f }.flatten

   def self.find_all_without_parent

It finds all the descendants of a given forum, you could just cycle
through all top-level forums using the Forum.find_all_without_parent
method and just query about the descendants of each item. I believe my
solution will give you a flat version of them however.