未初始化的常量加载类问题?

时间:2012-06-27 15:37:52

标签: ruby-on-rails ruby ruby-on-rails-3

所以,我收到了邮件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

在服务器上加载类看起来很麻烦。在类名失败之前删除双冒号。

非常感谢任何帮助。

2 个答案:

答案 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/