Question about acts_as_tree

Hi All,

I was wondering if a Class declared with acts_as_tree can have more than one root, i.e., parent_id = null?

this will basically support multiple trees within the same table.

My implementation idea is to have a lookups table where the records that have parent_id are the lookup Types and each one of those will have several children - and children could have more children, etc.

I know I can achieve the same thing for creating a dummy root and make the first level my "types", but I thought the idea above is cleaner in my opinion.

thanks,

Marcelo.

I've been tackling acts_as_tree in trying to write forum software. The original posts are each a root, with the replies as children. So, yes, you can have as many roots as you want.

The challenge I am faced with is how to traverse a full tree to get the last post???

Ryan--Can you explain the "I feel that going with a forums + topics + posts database schema is a much better idea than acts_as_tree" a little more?

Are you suggesting that 'topic' be segregated into it's own table? Now I have now a forums + (posts w/topics) schema.

Ryan, Thanks for the help. I've been designing schemas for years and I don't know why that layout didn't occur to me. Yikes. It's so darn simple. I've already got it implemented and it works great.

Oh great,

So quick question: (maybe two!) 1 - What happens when you call the root() method? 2 - how do you get a specific root()? 3 - How do you get all the roots?

thanks,

To get all of the roots..parent_id will be null (this is a requirement of acts_as_tree) parent_posts = Post.find(:all, :conditions => "parent_id is NULL"

A specific root, you'll need the id.. post = Post.find_by_id(id)

Not sure what calling the root method means...