У меня есть приложение, которое я уже давно перехожу на
Рельсы 2.3.8. Было много интересных вопросов, но я нахожусь на
растянулись дома, но теперь мы столкнулись с очень странными ошибками.
Суть в том, что когда я запускаю задачу с помощью rake, она не работает, но когда я запускаю
тот же код формы консоли, он работает нормально. «Исправление», которое я придумал, состояло в
переместить мой include ModuleNameA, include ModuleNameB и т. д. в конец
файл AR.
Мне не нравится это исправление, потому что я его не понимаю. Прежде чем я переехал их
объект AR (мы будем называть его Бобом) продолжал бросать неопределенный метод
ошибки при вызове через грабли. Было вызвано
в грабли, но в другом объекте AR.
Таким образом, задача rake запускала что-то вроде Worker.work, и
терпеть неудачу, как описано выше. Когда я запускаю Worker.work из консоли,
пройдет. После того, как я переместил включения в конец файла, оба
будет работать.
Кто-нибудь видел что-нибудь подобное? Я чувствую что-то вроде
фундаментальный не правильно. Как будто я сломал что-то основное для
функциональность и мое «исправление» - какой-то странный патч.
спасибо.
Эрик
PS:
Есть модуль, который я включаю в свой объект AR. Он добавляет методы класса и экземпляра, выполняя:
def self.included(base)
base.extend(ClassMethods)
end
Все методы в этом модуле доступны в консоли, но не через грабли.
Обновление:
Я заметил, что если я возьму часть: work =>: environment из
грабли задачи и вместо этого в блоке задачи требуется среда
файл вручную (например, требуется (File.join (RAILS_ROOT, 'config',
«окружающая среда»))) все отлично работает. Внезапно весь мой класс
методы доступны. это очень тревожно.