Миграция ActiveRecord и задачи Граблей, не загружающие модели?

Я знаю, что можно сделать что-то вроде этого для загрузки среды направляющих:

  task :my_task => :environment do 
    MyModel.find(1)
  end

Но кажется, что код в моделях не выполнен. Я использую acts_as_audited, и существует хорошая функция класса, которая получает все модели, которые контролируются. Вызов смотрит что-то как:

Audit.audited_classes

И указывать модель, как являющуюся auditable, Вы просто добавляете эту строку к своим моделям:

acts_as_audited

Когда audited_classes выполняется в консоли, я получаю массив всех своих контролируемых классов; однако, когда я выполняю его из задачи граблей (или миграция), я получаю пустой массив.

[Править]

После проигрывания вокруг немного больше, я заметил что, если модели на самом деле не загружаются, пока на них не ссылаются (т.е. ленивая загрузка). Я думал, что установка cache_classes к истинному в конфигурации зафиксирует это, но они все еще, кажется, ленивы загруженный.

Одно возможное решение состояло бы в том, чтобы циклично выполниться через все модели (как объяснено в этом сообщении: существует ли способ получить набор всех Моделей в Вашем приложении для направляющих?), но это кажется небольшим hacky, и я надеялся, что существует более чистый путь.

Какие-либо идеи?

Спасибо

5
задан Community 23 May 2017 в 12:07
поделиться