July 23, 2010
Posted by roadburn
How to: Create a Rails model that has categories and subcategories
Another reason to love rails, it’s so easy!
Just install the acts_as_tree plugin
1 | $ script/plugin install git://github.com/rails/acts_as_tree.git |
and in your model, eg. app/models/category.rb, just add
1 | acts_as_tree :order => 'name' |
And here’s the plugin’s readme on how to use it
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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 |
Resources
No Comments Yet
You can be the first to comment!
Leave a comment