Class: Callbacks::Form::FieldBeforeUpdate

Inherits:
Object
  • Object
show all
Includes:
Restrictor
Defined in:
app/models/callbacks/form/field_before_update.rb

Instance Method Summary collapse

Instance Method Details

#callObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/models/callbacks/form/field_before_update.rb', line 6

def call
  if m.position_was < m.position
    # move list range downward
    range = (m.position_was + 1)..m.position
    reverse = false
  else
    # move list range upward
    range = m.position..(m.position_was - 1)
    reverse = true
  end
  query = m.fields.where(position: range)
  if reverse
    query = query.reverse_order
  end
  query.each.with_index do |field, i|
    position = reverse ? m.position_was - i : m.position_was + i

    field.update_column(:position, position)
  end
  m.update_header
end