Revision 1297:0a574315af3e .svn/pristine/12

View differences:

.svn/pristine/12/127326e6d209a7195a4e636ab9db2fcdcafc6686.svn-base
1
$('#issue_notes').val("<%= raw escape_javascript(@content) %>");
2
<%
3
  # when quoting a private journal, check the private checkbox
4
  if @journal && @journal.private_notes? 
5
%>
6
$('#issue_private_notes').attr('checked', true);
7
<% end %>
8

  
9
showAndScrollTo("update", "notes");
10
$('#notes').scrollTop = $('#notes').scrollHeight - $('#notes').clientHeight;
.svn/pristine/12/1274b8f28c749e735c8c75f99681e8f1e536c19a.svn-base
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 more awesome.
4

  
5
Version 2 supports Rails 3. Gem versions prior to 2.0 support Rails 2.
6

  
7
== What makes this so awesome?
8

  
9
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.
10

  
11
== Installation
12

  
13
  Add to your Gemfile:
14

  
15
  gem 'awesome_nested_set'
16

  
17
== Usage
18

  
19
To make use of awesome_nested_set, your model needs to have 3 fields: lft, rgt, and parent_id:
20

  
21
  class CreateCategories < ActiveRecord::Migration
22
    def self.up
23
      create_table :categories do |t|
24
        t.string :name
25
        t.integer :parent_id
26
        t.integer :lft
27
        t.integer :rgt
28
      end
29
    end
30

  
31
    def self.down
32
      drop_table :categories
33
    end
34
  end
35

  
36
Enable the nested set functionality by declaring acts_as_nested_set on your model
37

  
38
  class Category < ActiveRecord::Base
39
    acts_as_nested_set
40
  end
41

  
42
Run `rake rdoc` to generate the API docs and see CollectiveIdea::Acts::NestedSet for more info.
43

  
44
== Protecting attributes from mass assignment
45

  
46
It's generally best to "white list" the attributes that can be used in mass assignment:
47

  
48
  class Category < ActiveRecord::Base
49
    acts_as_nested_set
50
    attr_accessible :name, :parent_id
51
  end
52

  
53
If for some reason that is not possible, you will probably want to protect the lft and rgt attributes:
54

  
55
  class Category < ActiveRecord::Base
56
    acts_as_nested_set
57
    attr_protected :lft, :rgt
58
  end
59

  
60
== Conversion from other trees
61

  
62
Coming from acts_as_tree or another system where you only have a parent_id? No problem. Simply add the lft & rgt fields as above, and then run
63

  
64
  Category.rebuild!
65

  
66
Your tree will be converted to a valid nested set. Awesome!
67

  
68
== View Helper
69

  
70
The view helper is called #nested_set_options.
71

  
72
Example usage:
73

  
74
  <%= f.select :parent_id, nested_set_options(Category, @category) {|i| "#{'-' * i.level} #{i.name}" } %>
75

  
76
  <%= select_tag 'parent_id', options_for_select(nested_set_options(Category) {|i| "#{'-' * i.level} #{i.name}" } ) %>
77

  
78
See CollectiveIdea::Acts::NestedSet::Helper for more information about the helpers.
79

  
80
== References
81

  
82
You can learn more about nested sets at: http://threebit.net/tutorials/nestedset/tutorial1.html
83

  
84
== How to contribute
85

  
86
If you find what you might think is a bug:
87

  
88
1. Check the GitHub issue tracker to see if anyone else has had the same issue.
89
   http://github.com/collectiveidea/awesome_nested_set/issues/
90
2. If you don't see anything, create an issue with information on how to reproduce it.
91

  
92
If you want to contribute an enhancement or a fix:
93

  
94
1. Fork the project on github.
95
   http://github.com/collectiveidea/awesome_nested_set/
96
2. Make your changes with tests.
97
3. Commit the changes without making changes to the Rakefile, VERSION, or any other files that aren't related to your enhancement or fix
98
4. Send a pull request.
99

  
100
Copyright ©2008 Collective Idea, released under the MIT license
.svn/pristine/12/12b52cd60621e5d4f549e4bf4aad6c176256d275.svn-base
1
# Plugin's routes
2
# See: http://guides.rubyonrails.org/routing.html
3

  
4
match 'projects/:id/hello', :to => 'example#say_hello', :via => 'get'
5
match 'projects/:id/bye', :to => 'example#say_goodbye', :via => 'get'
6

  
7
resources 'meetings'

Also available in: Unified diff