0

所以,我得到了 mailerapp/mailers/dynamic_mailer.rb和 model app/models/email_message/outgoing.rb。有方法:

class EmailMessage::Outgoing < EmailMessage
...
  def deliver_mail
     l = ::DynamicMailer.email_message(self).deliver!
     Rails.logger.info "SEND MAIL: #{l.inspect}"
     update_attribute(:received_at, Time.now)
  end

在本地(开发环境)一切正常。当我将应用程序部署到服务器(暂存环境)并尝试在那里发送电子邮件表单时,就会出现问题。延迟作业打印:

[Worker(host:rdev pid:2279)] EmailMessage::Outgoing#send_email! 
  failed with NameError: uninitialized constant 
  EmailMessage::Outgoing::DynamicMailer - 11 failed attempts

在服务器上加载类看起来像一个问题。在类名之前删除双冒号失败。

任何帮助将不胜感激。

4

2 回答 2

1

尝试使用 DynamicMailer 明显地在您的模型文件中指定文件,如下所示require 'app/mailers/dynamic_mailer.rb'。可能它可以帮助找到必要的课程。
另外我注意到错误消息中提到send_email!了方法,但您在此处发布了def deliver_mail方法。无论是我不明白的东西还是你找错地方了。

于 2012-06-27T16:51:55.293 回答
0

我只是忘记重新启动延迟的作业守护程序。

你可以用 capistrano 来做到这一点,将 gem 'daemons' 添加到你的 Gemfile 并像这样更新receipes:http ://cmar.me/2011/02/21/delayed_job-with-rails-3-and-capistrano/

于 2012-06-28T09:54:50.437 回答