Как создать экземпляр класса из другой структуры папок (Rails) - PullRequest
1 голос
/ 17 января 2012

Использование Rails 3.2 и ruby ​​1.9.3p0

Я пробую драгоценный камень delayed_job. Я создал файл lib / mailing_job.rb, в котором у меня есть класс MailingJob.

В контроллере под app / controllers / запросы_controller.rb я звоню

job = MailingJob.new(@request)

но это возвращает ошибку

uninitialized constant RequestsController::MailingJob

Я думаю, это потому, что мне нужен правильный способ ссылки на класс в другой структуре папок.

Есть идеи, как я могу удалить класс MailingJob из другого файла (класса) в другой папке?

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Rails 3 не включает папку lib в путь загрузки, поэтому ваше приложение не знает, как найти класс.

Вы можете изменить config/application.rb и добавить строку, чтобы поручить рельсам также искать впапка lib вот так

config.autoload_paths += %W(#{config.root}/lib)
1 голос
/ 17 января 2012

В инициализаторе (например, config / initializers / delayed_job.rb) сделайте это (не важно где)

require 'mailing_job'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...