автоматическое увеличение позиции acts_as_list в rails

#ruby-on-rails #ruby #ruby-on-rails-3

#ruby-on-rails #ruby #ruby-on-rails-3

Вопрос:

Я использую драгоценный камень acts_as_list, но при создании нового объекта позиция должна автоматически увеличиваться в размере и упорядочивать позицию ASC.

Модель страницы урока

 class LessonPage < ActiveRecord::Base
    acts_as_list :scope => 'lesson_id = #{lesson_id}'
    default_scope order('position ASC')
end
  

Выберите

 SELECT "lesson_pages".* FROM "lesson_pages" ORDER BY position ASC, "lesson_pages".id desc
  

Сначала вставить

 INSERT INTO "lesson_pages" ("created_at", "lesson_id", "position", "updated_at") VALUES (?, ?, ?, ?)  [["created_at", Sun, 16 Oct 2011 11:55:27 CEST  02:00], ["lesson_id", 2], ["position", 1], ["updated_at", Sun, 16 Oct 2011 11:55:27 CEST  02:00]]
  

Второй

 INSERT INTO "lesson_pages" ("created_at", "lesson_id", "position", "updated_at") VALUES (?, ?, ?, ?)  [["created_at", Sun, 16 Oct 2011 11:57:15 CEST  02:00], ["lesson_id", 2], ["position", 2], ["updated_at", Sun, 16 Oct 2011 11:57:15 CEST  02:00]]
  

Третий

 INSERT INTO "lesson_pages" ("created_at", "lesson_id", "position", "updated_at") VALUES (?, ?, ?, ?)  [["created_at", Sun, 16 Oct 2011 11:58:13 CEST  02:00], ["lesson_id", 2], ["position", 2], ["updated_at", Sun, 16 Oct 2011 11:58:13 CEST  02:00]]
  

Здесь это не удается, потому что позиция должна быть 3, а не 2. Как мне это исправить?
Спасибо!!

Комментарии:

1. какую версию acts_as_list вы используете? Я думаю, что это было исправлено этим коммитом ( github.com/swanandp/acts_as_list/commit /… ) ОБНОВЛЕНИЕ: О, я понимаю. После этого коммита релиз не выполняется. Я думаю, вам следует использовать код из github.

2. Ты ангел! Он работает правильно из репозитория: git!

Ответ №1:

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

используйте это:

 gem 'acts_as_list', :git => 'https://github.com/swanandp/acts_as_list.git'
  

Комментарии:

1. Этот драгоценный камень использует новый стиль хэша, который не поддерживается старым ruby 1.8.7. Поэтому мне пришлось использовать код этого коммита (который был указан в вашем комментарии к вопросу) в качестве исправления для обезьяны. Было очень полезно. Спасибо.