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