Я столкнулся с этой проблемой. Я построил API в Rails и клиент в Angular. У меня есть модель под названием Todo
, которая имеет свойство order
. Когда я создаю новый Todo, я автоматически присвоит вновь созданного TODO заказа значения следующим образом:Как отсортировать список, используя угловую сортировку и рельсы
@todo = Todo.create(todo_params)
@todo.order = Todo.count + 1
И показать все ToDos:
@todos = Todo.where(...).order(:order.desc)
В моем клиенте я использую Sortable для UI, и есть метод под названием onUpdate
, который дает мне новые индексы для массива.
Проблема, с которой я столкнулась, заключается в том, что индексы значительно отличаются от значения, которое у меня есть в свойстве order
. Когда вызывается вышеупомянутая функция, я получаю элемент и еще два значения: newIndex
и oldIndex
, но проблема в том, что это не дает мне индекс других todos, так как я могу реорганизовать это в базе данных?
Буду признателен за любую помощь, поскольку я немного потерял здесь.
PS: Обратите внимание, что это только Rails API, поэтому нет представлений.
EDIT
Выходной хотел:
Давайте представим себе это: У меня есть три элемента в базе данных: {name: A, order: 1}, {name: B, order: 2}, {name: C, order: 3}
. В интерфейсе, используя ng-repeat, каждый элемент будет иметь $index
. Скажем, ради аргумента, что A будет иметь значение $index
0, B 1, C 2. В настоящий момент, когда я использую Угловую библиотеку Sortable, когда я вручную сортирую список, получаю значения: oldIndex
и newIndex
, что соответствует позиция элемента, который я переместил внутри массива, но он не показывает позицию всех элементов в массиве, поэтому я не знаю, как использовать свойства этих значений для обновления объекта в базе данных.
Вы находитесь на Rails 5, затем справа? – mahatmanich
К сожалению нет (проект был запущен до того, как был выпущен Rails 5), поэтому мы используем Rails 4 и удалили все виды и т. Д. – WagnerMatosUK
Что действительно помогло бы - это какой-то вывод, который вы ожидаете, и вывод, который в настоящее время нежелателен. .. В какой базе данных вы используете? – mahatmanich