Module: Sortability::ActiveRecord::Migration

Defined in:
lib/sortability/active_record/migration.rb

Instance Method Summary collapse

Instance Method Details

#add_sortable_column(table, options = {}) ⇒ Object

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



5
6
7
8
9
10
# 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 = {}) ⇒ Object

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



13
14
15
16
17
18
19
20
# 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