Я знаю, что можно сделать что-то вроде этого для загрузки среды направляющих:
task :my_task => :environment do
MyModel.find(1)
end
Но кажется, что код в моделях не выполнен. Я использую acts_as_audited, и существует хорошая функция класса, которая получает все модели, которые контролируются. Вызов смотрит что-то как:
Audit.audited_classes
И указывать модель, как являющуюся auditable, Вы просто добавляете эту строку к своим моделям:
acts_as_audited
Когда audited_classes выполняется в консоли, я получаю массив всех своих контролируемых классов; однако, когда я выполняю его из задачи граблей (или миграция), я получаю пустой массив.
[Править]
После проигрывания вокруг немного больше, я заметил что, если модели на самом деле не загружаются, пока на них не ссылаются (т.е. ленивая загрузка). Я думал, что установка cache_classes к истинному в конфигурации зафиксирует это, но они все еще, кажется, ленивы загруженный.
Одно возможное решение состояло бы в том, чтобы циклично выполниться через все модели (как объяснено в этом сообщении: существует ли способ получить набор всех Моделей в Вашем приложении для направляющих?), но это кажется небольшим hacky, и я надеялся, что существует более чистый путь.
Какие-либо идеи?
Спасибо