Мой контроллер не может найти мой (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 споткнулся об ошибке в самом коде действия.