Я использую acts_as_list v0.9.17 следующим образом:
class ListItem < ActiveRecord::Base
acts_as_list scope: [:column1_id, :column2_id], :add_new_at => :bottom
end
Когда создается новый (в области видимости) @list_item
, скажем, где column1_id
это 1
, column2_id
равно 11
, а column3_id
равно 37
, база данных выглядит следующим образом, как и ожидалось:
id | position | column1_id | column2_id | column3_id
--- | -------- | ---------- | ---------- | ----------
750 | 1 | 1 | 11 | 89
751 | 2 | 1 | 11 | 56
752 | 3 | 1 | 11 | 105
753 | 4 | 1 | 11 | 25
754 | 5 | 1 | 11 | 37
Однако, когда @list_item
уничтожается, скажем, одингде column1_id
равно 1
, column2_id
равно 11
и column3_id
равно 56
(идентификатор записи 751
), тогда база данных выглядит следующим образом:
id | position | column1_id | column2_id | column3_id
--- | -------- | ---------- | ---------- | ----------
750 | 1 | 1 | 11 | 89
752 | 3 | 1 | 11 | 105
753 | 4 | 1 | 11 | 25
754 | 5 | 1 | 11 | 37
Это означаетесть зазор для position
2
.
Как предотвратить или отрегулировать зазор?То есть, как справиться с переупорядочением элементов списка, когда элемент списка уничтожен?
Примечание: я знаю, что есть методы, которые изменяют положение и переупорядочивают список , но я незнать, как и как использовать их для решения проблемы (может быть, как-нибудь remove_from_list
).