module Sortability::ActiveRecord::Migration

Public Instance Methods

add_sortable_column(table, options = {}) click to toggle source

Adds a non-null sortable column to an existing table (no index)

# File lib/sortability/active_record/migration.rb, line 5
def add_sortable_column(table, options = {})
  options[:null] = false if options[:null].nil?
  on = options.delete(:on) || :sort_position

  add_column table, on, :integer, options
end
add_sortable_index(table, options = {}) click to toggle source

Adds a unique index covering the sort scope cols in an existing table

# File lib/sortability/active_record/migration.rb, line 13
def add_sortable_index(table, options = {})
  options[:unique] = true if options[:unique].nil?
  scope = options.delete(:scope)
  on = options.delete(:on) || :sort_position
  columns = ([scope] << on).flatten.compact

  add_index table, columns, options
end