【发布时间】:2014-08-20 21:32:19
【问题描述】:
实际上,我正在使用延迟作业在后台运行电子邮件进程。当我调用delayed_job 的延迟方法时,它会将记录插入Delayed::Job 表但邮件没有发送,当我检查delayed_job.log 时,它包含“失败并出现TypeError:无法将nil 转换为哈希”错误。
UserMailer.rb 文件包含以下代码
def welcome_email(user)
@username = user.name
setup_email(user)
end
在用户控制器中
UserMailer.delay.welcome_email(User.last)
但是当我删除延迟方法时,邮件就会发送 代码是:
UserMailer.welcome_email(User.last).deliver
我不明白为什么这个错误会延迟出现,请帮我找出这个问题的原因。
【问题讨论】:
-
setup_email 方法是做什么的?你能分享那个代码吗?