Sortable Nested Set
Requirements
jQuery is required.
Usage
Add the gem to your Gemfile.
gem 'sortable_nested_set'
In each “Category” (e.g. “Directory”) migration:
lft:integer
rgt:integer
depth:integer [optional]
In the routing configuration file:
nest the "Category" and "Item" resources
In the “Category” and “Item” controllers:
[new] use param[:category_id]
[destroy] respond_to format.js (and provide associated view)
In the “Category” and “Items” models:
provide #to_s.
In the <head> section of the layout(s) where the trees will be displayed:
yield(:head)
after jQuery is loaded.
In each “Category” model:
acts_as_sortable_nested_set_of :items
where :items is the pluralized, underscored “Item” model (e.g. “ImageFile”=>:image_files).
Options
:order specifies the order which "Items" will be sorted in. Defaults to nil unless "Item" acts_as_list.
Support for acts_as_list
When an “Item” model acts_as_list, SortableNestedSet will automatically use its position for sorting.
Helpers
sns_lineage
sns_tree