0

问候大家...

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

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

  • 我在 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:Class 的未定义方法“help_request_email”)

这在技术上是正确的...... HelpRequestMailer 中没有 help_request_email 类方法......它是一个实例方法(如文档所指定)。

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

任何帮助/建议将不胜感激......

4

1 回答 1

0

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

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

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

于 2014-02-17T21:39:30.623 回答