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_options
sns_lineage
sns_tree