我的控制器找不到我的(动作)邮件程序!

时间:2013-01-18 17:21:31

标签: ruby-on-rails actionmailer

祝贺所有人......

我正试图找出一个我从未见过的问题,不应该发生在所有帐户中......

我正在使用Rails 3.0.12和简单/标准的ActionMailer设置:

  • 我在app / mailers中有HelpRequestMailer
  • 我在app / controllers
  • 中有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(针对HelpRequestMailer:类的未定义方法`help_request_email')

技术上确实如此...... HelpRequestMailer中没有help_request_email类方法......这是一个实例方法(由文档指定)。

我的ActionMailer配置位于config / application.rb

非常感谢任何帮助/建议......

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题,结果证明这是一个完全无用的错误信息。在我的情况下,我的一些代码中的动作邮件程序或相关视图只是语法错误。

我认为发生的事情是,当Rails无法正确解析邮件程序或查看代码时,它只是绕过文件而从未实例化动作邮件程序对象,从而导致控制器出错。

如果Rails绊倒了动作邮件代码本身的错误,我会更喜欢它。