данный сценарий,
id name sequence
1 a 1
2 b 2
3 c 3
4 d 4
5 e 5
Таблица пользователей имеет sequence
, которые представляют порядок отображения пользователей в интерфейсе.
в приведенном выше примере, если я пытаюсь вставитьпользователь между user id
3, то ожидаемое поведение должно быть
id name sequence
1 a 1
2 b 2
3 c 3
4 d 5
5 e 6
6 f 4
здесь позиция рассчитывается с использованием последнего ввода последовательности last_sequence = 3.
Аналогично, пользователь может повторить тот же видоперация, и она должна быть переупорядочена в соответствии с базой данных. Примечание: не сортировка JQuery.
Моя попытка
seq = last_sequence
users.where("last_sequence >= ? and id != ?",3,6).each do |u|
u.update_attributes(sequence: seq+1 )
seq = u.sequence + 1
end
Я знаю, что вышеупомянутое неверно и оборачиваю голову, чтобы найти решение