2010-10-14 3 views
3

Я использую delayed_job 2.1.0.pre2, , а в моем lib у меня есть класс, который называется MailingJob (mailing_job.rb), и у него есть один метод с именем execute. В моем контроллере я помещаю новый объект MailingJob в очередь delayed_job, как сказал док. , но когда я запускаю команду «rake jobs: work», она всегда говорила мне, что она не может найти «MailingJob», нужно ли требовать файл mailing_job.rb? Если да, где я должен это поставить? спасибо!rake jobs: work error, uninitialized constant

+1

Это практически невозможно, чтобы помочь вам без более полной информации. Нам действительно нужно видеть код. – 2010-10-14 06:36:23

ответ

7

mailing_job.rb должно быть в месте, где Rails может найти и автоматически загрузить его. Где у вас есть этот файл? Если это не в app/models или что-то в этом роде, оно не найдет его самостоятельно.

У меня есть работа в app/jobs, но это работает, потому что я добавил, что путь к путям нагрузки Rails в блоке с environment.rbRails::Initializer.run:

config.load_paths << "#{Rails.root}/app/jobs" 
+0

Хороший ключ, я положил «mailing_job.rb» в свой каталог RAILSAPP/lib, я думал, что он будет загружен автоматически, будет ли каталог каталогов загружаться автоматически при запуске рельсов? –

+0

Нет, 'lib' по умолчанию не входит в пути загрузки. Вы могли бы добавить инициализатор, чтобы потребовать ваши вещи из lib, хотя. – tfe

+0

большое спасибо !! я попробую это позже, спасибо –

Смежные вопросы