This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
README | Mon Mar 30 01:27:48 -0700 2009 | |
| |
Rakefile | Mon Sep 10 22:46:43 -0700 2007 | |
| |
init.rb | Sun Mar 29 23:00:59 -0700 2009 | |
| |
lib/ | Tue Mar 31 11:28:08 -0700 2009 | |
| |
test/ | Sun Mar 29 23:00:59 -0700 2009 |
README
acts_as_tree
============
Specify this +acts_as+ extension if you want to model a tree structure by providing a parent association and a children
association. This requires that you have a foreign key column, which by default is called +parent_id+.
class Category < ActiveRecord::Base
acts_as_tree :order => "name"
end
Example:
root
\_ child1
\_ subchild1
\_ subchild2
root = Category.create("name" => "root")
child1 = root.children.create("name" => "child1")
subchild1 = child1.children.create("name" => "subchild1")
root.parent # => nil
child1.parent # => root
root.children # => [child1]
root.children.first.children.first # => subchild1
More than one tree can be specified in a model with the :name option passed
to acts_as_tress. Named name is prepended to to all basic variable names.
class Biology < ActiveRecord::Base
# life, domain, kingdom, phylum, order, family, genus, species
acts_as_tree :name => "taxonomic" # default fk taxonomic_parent_id
#kingdom: Animalia, Platyzoa
acts_as_tree :name => "animalia"
end
bio = Biology.create
life = bio.taxonomic_children.create("name" => 'life')
domain = life.taxonomic_children.create("name" => 'domain')
life == bio.taxonomic_root # true
animalia = bio.animalia_children.create("name" => 'Animalia')
platyzoa = animalia.animalia_children.create("name" => 'Platyzoa')
animalia.animalia_self_and_siblings = [animalia, platyzoa] # true
Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license







