amerine/acts_as_list
ActsAsList plugin
README
ActsAsList
==========
This acts_as extension provides the capabilities for sorting and reordering a number of objects in a list. The class that has this specified needs to have a +position+ column defined as an integer on the mapped database table.
Example
=======
class TodoList < ActiveRecord::Base
has_many :todo_items, :order => "position"
end
class TodoItem < ActiveRecord::Base
belongs_to :todo_list
acts_as_list :scope => :todo_list, :bulk_reorder => true
end
todo_list.first.move_to_bottom
todo_list.last.move_higher
todo_list.first.move_below(todo_list.last)
todo_list.last.move_above(todo_list.first)
todo_list.first.swap_positions_with(todo_list.last)
TodoItem.reorder_list(todo_list.todo_items.order(:id).pluck(:id))
Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license