В моей папке / lib есть класс, который мой демон delayed_job вызывает для работы с объектом типа Foo. Если в рабочем классе у меня нет слова "требует 'foo'", то он не знает, что делать с YAML, полученным из БД, и я получаю ошибку "неопределенный метод". Добавление в "require 'foo'", очевидно, исправит это, что является обычным решением.
Но .. проблема в том, что у меня есть counter_cache => true в классе Foo. Так что получается, что когда диджей DJ загружает среду Rails, Foo загружается автоматически и добавляется обратный вызов для моего counter_cache. Затем демон delayed_job запускается, выполняет «require 'foo'", и он послушно перезагружает Foo и добавляет еще один обратный вызов для counter_cache, в результате чего мой counter_cache обновляется дважды для каждой добавленной или удаленной строки.
Есть ли способ обернуть: counter_cache => true, чтобы он запускался только один раз? Есть ли способ заставить мой рабочий класс диджея использовать объект типа 'Foo' без необходимости явно использовать 'require'?