acts_as_list 0.2.0 работает для меня в Rails 3.2.11 на Ruby 1.9.3. Однако синтаксис << для добавления задач вызывает проблемы. Вместо этого я использовал list.tasks.create (). </p>
Вот пример теста:
test "acts_as_list methods" do
list = ToDoList.create(description: 'To Do List 1')
task1 = list.tasks.create(description: 'Task 1')
task2 = list.tasks.create(description: 'Task 2')
task3 = list.tasks.create(description: 'Task 3')
assert_equal 3, list.tasks.count
assert_equal task1.id, list.tasks.order(:position).first.id
assert_equal task3.id, list.tasks.order(:position).last.id
# Move the 1st item to the bottom. The 2nd item should move into 1st
list.tasks.first.move_to_bottom
assert_equal 3, list.tasks.count
assert_equal task2.id, list.tasks.order(:position).first.id
assert_equal task1.id, list.tasks.order(:position).last.id
end
При создании новой задачи, не связанной с списком to_do_list, acts_as_list назначит позицию, ограниченную to_do_list_id == nil. Позже добавление существующей задачи в список to_do_list с помощью << не обновляет позицию задачи, так что acts_as_list запутывается в позициях. </p>
Проверьте свой файл test.log, чтобы увидеть операторы SQL, сгенерированные Act_as_list, чтобы получить четкое представление о том, что происходит в вашем конкретном приложении.
Поскольку кажется, что ваши специалисты назначены после создания задач work_queue, вам может потребоваться вручную установить или пересчитать позиции после вызова «<<». Возможно, вы также рассмотрите возможность перемещения act_as_list в свою модель TechnicianWorkQueue, поэтому act_as_list вызывается только при создании отношений между Technician и WorkQueue. </p>