所以,我收到了邮件app/mailers/dynamic_mailer.rb
和模型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
本地(开发环境)一切正常。当我将应用程序部署到服务器(staging env)并尝试在那里发送电子邮件表单时,会出现问题。延迟作业打印:
[Worker(host:rdev pid:2279)] EmailMessage::Outgoing#send_email!
failed with NameError: uninitialized constant
EmailMessage::Outgoing::DynamicMailer - 11 failed attempts
在服务器上加载类看起来很麻烦。在类名失败之前删除双冒号。
非常感谢任何帮助。
答案 0 :(得分:1)
尝试使用DynamicMailer指定文件,显然在您的模型文件中,如require 'app/mailers/dynamic_mailer.rb'
。可能有助于找到必要的课程
另外我注意到错误消息中提到了send_email!
方法,但您在此处发布了def deliver_mail
方法。我是不明白什么,或者你看错了地方。
答案 1 :(得分:0)
我忘了重新启动延迟的作业守护程序。
你可以使用capistrano,通过向你的Gemfile中添加gem'守护进程'并更新这样的结果:http://cmar.me/2011/02/21/delayed_job-with-rails-3-and-capistrano/