我无法发送电子邮件。我已经尝试过以下方法:将处理程序类型从文本转换为长文本不起作用,因为我正在使用 postgres。我也尝试过重新启动我的工人和延迟的工作,而我延迟的工作是 3.0.1 版本。
我在线上遇到问题:
Notifier.delay.delivery_alert(u)
我的 delivery_alert 方法是
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
在本地主机上我收到错误:
[Worker(host:ubuntu pid:12169)] Class#delivery_alert failed with NoMethodError: undefined method `delivery_alert' for # - 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
通过参考
https://gist.github.com/oelmekki/2181381
但我的电子邮件仍然没有发送。提前致谢?