Мой контроллер не может найти мой (Action)Mailer!

Приветствую всех...

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

Я использую Rails 3.0.12 с простой / стандартной установкой ActionMailer:

  • У меня есть HelpRequestMailer в приложении / почтовые программы
  • У меня есть HelpRequestsController в приложении / контроллеры

Первая проблема... Когда я вызываю почтовик в моем контроллере...

help_request = HelpRequest.new (params [: help_request]) ... HelpRequestMailer.help_request_email (help_request) .deliver

Я получаю следующую ошибку: NameError (неинициализированная константа HelpRequestsController::HelpRequestMailer)

Это само по себе странно.

Когда я добавляю следующее...

требуют File.expand_path ('../../ mailers / help_request_mailer', FILE)

... к верхней части контроллера (я ожидал бы, что путь будет '../mailers/help_request_mailer', но это не работает) - что мне не нужно делать - контроллер, похоже, находит почтовую программу, но кажется, не узнает, что это такое / знает, что с этим делать. Я получаю следующую ошибку:

NoMethodError (неопределенный метод `help_request_email'для HelpRequestMailer:Class)

Что технически верно... В HelpRequestMailer нет метода класса help_request_email... Это метод экземпляра (как указано в документации) .

Моя конфигурация ActionMailer находится в config /application.rb

Любая помощь / предложения будут с благодарностью...

1 ответ

У меня тоже была эта проблема, и это оказалось совершенно бесполезным сообщением об ошибке. В моем случае это была просто синтаксическая ошибка в некоторых моих кодах для почтовой программы действий или связанного представления.

Я думаю, что произошло то, что, когда Rails не мог правильно проанализировать почтовик или просмотреть код, он просто обошел файлы и никогда не создавал экземпляр объекта action mailer, что приводило к ошибке в контроллере.

Я бы предпочел, чтобы Rails споткнулся об ошибке в самом коде действия.

Другие вопросы по тегам