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
range = (m.position_was + 1)..m.position
reverse = false
else
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.
end
|