acts_as_list

A Rails plugin that provides list abilities to an ActiveRecord model

View the Project on GitHub swanandp/acts_as_list

ActsAsList

Description

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.

Installation

In your Gemfile:

gem 'acts_as_list'

Or, from the command line:

gem install acts_as_list

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
end

todo_list.first.move_to_bottom
todo_list.last.move_higher

Notes

If the position column has a default value, then there is a slight change in behavior, i.e if you have 4 items in the list, and you insert 1, with a default position 0, it would be pushed to the bottom of the list. Please look at the tests for this and some recent pull requests for discussions related to this.

Versions

All versions 0.1.5 onwards require Rails 3.0.x and higher.

Build Status

Build Status

Roadmap

  1. Sort based feature
  2. Rails 4 compatibility and bye bye Rails 2! Older versions would of course continue to work with Rails 2, but there won't be any support on those.

Contributing to acts_as_list

Copyright

Copyright (c) 2007 David Heinemeier Hansson, released under the MIT license