Переставляемый упорядоченный список с Ruby on Rails - PullRequest
9 голосов
/ 02 сентября 2011

Я хочу реализовать своего рода список избранного.Давайте возьмем список воспроизведения для этого примера:

Song A
Song D
Song B
Song C

Порядок песен должен быть сохранен, и пользователь должен иметь возможность изменить этот порядок и вставить новые элементы в произвольную точку в списке.

Моя идея состоит в том, чтобы использовать поле «позиция» и сбрасывать его для всех элементов списка, когда список сохраняется.Я думаю, это то, что делает Javas Hibernate.

Другая идея состоит в том, чтобы использовать номера позиций с большой разницей, скажем 1000, чтобы оставалось место для изменений:

Song A 1000
Song D 2000
Song B 3000
Song C 4000

Песня Cбудет вставлен между A и D с номером позиции 1500:

Song A 1000
Song C 1500 
Song D 2000
Song B 3000

Есть лучшие идеи?

Ответы [ 2 ]

8 голосов
/ 02 сентября 2011

Почему бы не использовать acts_as_list ?

6 голосов
/ 02 сентября 2011

Если вы хотите бросить свой, ответы на этот вопрос могут быть полезны:

Лучший способ сохранить упорядоченный список в базе данных при сохранении порядка

Похоже, что консенсус заключается в том, чтобы просто использовать поле заказа и переупорядочить их все при сохранении.Вы можете уменьшить объем работы с базой данных, если разрешите пользователю интерактивно переупорядочивать клиентскую часть и просто отправить окончательный список для сохранения обратно на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...