Mercurial > hg > soundsoftware-site
comparison vendor/plugins/awesome_nested_set/.svn/text-base/README.rdoc.svn-base @ 0:513646585e45
* Import Redmine trunk SVN rev 3859
author | Chris Cannam |
---|---|
date | Fri, 23 Jul 2010 15:52:44 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:513646585e45 |
---|---|
1 = AwesomeNestedSet | |
2 | |
3 Awesome Nested Set is an implementation of the nested set pattern for ActiveRecord models. It is replacement for acts_as_nested_set and BetterNestedSet, but awesomer. | |
4 | |
5 == What makes this so awesome? | |
6 | |
7 This is a new implementation of nested set based off of BetterNestedSet that fixes some bugs, removes tons of duplication, adds a few useful methods, and adds STI support. | |
8 | |
9 == Installation | |
10 | |
11 If you are on Rails 2.1 or later: | |
12 | |
13 script/plugin install git://github.com/collectiveidea/awesome_nested_set.git | |
14 | |
15 == Usage | |
16 | |
17 To make use of awesome_nested_set, your model needs to have 3 fields: lft, rgt, and parent_id: | |
18 | |
19 class CreateCategories < ActiveRecord::Migration | |
20 def self.up | |
21 create_table :categories do |t| | |
22 t.string :name | |
23 t.integer :parent_id | |
24 t.integer :lft | |
25 t.integer :rgt | |
26 end | |
27 end | |
28 | |
29 def self.down | |
30 drop_table :categories | |
31 end | |
32 end | |
33 | |
34 Enable the nested set functionality by declaring acts_as_nested_set on your model | |
35 | |
36 class Category < ActiveRecord::Base | |
37 acts_as_nested_set | |
38 end | |
39 | |
40 Run `rake rdoc` to generate the API docs and see CollectiveIdea::Acts::NestedSet::SingletonMethods for more info. | |
41 | |
42 == View Helper | |
43 | |
44 The view helper is called #nested_set_options. | |
45 | |
46 Example usage: | |
47 | |
48 <%= f.select :parent_id, nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" } %> | |
49 | |
50 <%= select_tag 'parent_id', options_for_select(nested_set_options(Category) {|i| "#{'-' * i.level} #{i.name}" } ) %> | |
51 | |
52 See CollectiveIdea::Acts::NestedSet::Helper for more information about the helpers. | |
53 | |
54 == References | |
55 | |
56 You can learn more about nested sets at: | |
57 | |
58 http://www.dbmsmag.com/9603d06.html | |
59 http://threebit.net/tutorials/nestedset/tutorial1.html | |
60 http://api.rubyonrails.com/classes/ActiveRecord/Acts/NestedSet/ClassMethods.html | |
61 http://opensource.symetrie.com/trac/better_nested_set/ | |
62 | |
63 | |
64 Copyright (c) 2008 Collective Idea, released under the MIT license |