Ruby on rails 3.1 NilClass#因TypeError失败:nil不是符号

Ruby on rails 3.1 NilClass#因TypeError失败:nil不是符号,ruby-on-rails-3.1,actionmailer,delayed-job,Ruby On Rails 3.1,Actionmailer,Delayed Job,我无法发送电子邮件。我已经尝试了以下方法: 将处理程序类型从文本转换为长文本不起作用,因为我正在使用postgres。 我还试着重新启动我的员工,推迟工作 我延迟的作业是版本是3.0.1 我在线路上遇到问题: 通知程序.延迟.传递\u警报(u) 我的交货提醒方法是 def delivery_alert(user) @user = user @deliveries = @user.issues.includes(:copy => [:rentable]).current.b

我无法发送电子邮件。我已经尝试了以下方法: 将处理程序类型从文本转换为长文本不起作用,因为我正在使用postgres。 我还试着重新启动我的员工,推迟工作 我延迟的作业是版本是3.0.1

我在线路上遇到问题:

通知程序.延迟.传递\u警报(u)

我的交货提醒方法是

def delivery_alert(user) 
    @user = user
    @deliveries = @user.issues.includes(:copy => [:rentable]).current.by_last_status("to_be_delivered").map(&:copy).map(&:rentable)
    @returns = @user.issues.includes(:copy => [:rentable]).current.by_last_status("marked_for_return").map(&:copy).map(&:rentable)
    mail(:to => @user.email)
end
在localhost上时,我收到以下错误:

[Worker(主机:ubuntu pid:12169)]类#传递#警报失败,命名错误:未定义方法#-5次失败尝试的#传递#警报 我在lib文件夹中为其添加了一个补丁

require 'yaml'

module Delayed
 module Backend
  module Base
   def payload_object
    YAML::ENGINE.yamler = 'psych'
    @payload_object ||= YAML.load(self.handler)
    rescue TypeError, LoadError, NameError, ArgumentError => e
     raise DeserializationError,
     "Job failed to load: #{e.message}. Handler: #{handler.inspect}"
    end
   end
 end

 class PerformableMailer
  def perform
    double = object.is_a?( String ) ? object.constantize : object
    double.send(method_name, *args).deliver
  end
 end
end
参考


但我的电子邮件还是不发。提前感谢?

通知程序。发送通知(u)有效吗?@zrl3dx:有效。是的,似乎是相同的问题,您可以降级到2.x或升级到至少3.0.5吗?zrl3dx-我已尝试将延迟的通知作业升级到3.0.5,但在本地主机上仍然面临命名错误。需要您的通知程序类吗(需要'notifier'#或实际路径)在脚本/延迟_作业中查看它是否工作。延迟_作业似乎没有自动加载它。