delayed_job保存条目但不发送电子邮件

时间:2014-03-19 11:18:42

标签: ruby-on-rails activerecord ruby-on-rails-4 delayed-job

我正在使用delayed_job gem在销毁记录时发送电子邮件。

comments_controller.rb

def reject_appeal
    @comment = Comment.find(params[:id])
    if @comment.destroy
      @comment.rejection(@comment)
      flash[:alert] = "You have succesfully rejected the appeal."
      redirect_to post(@comment.post_id)
    end
end

comments.rb

   def rejection(comment)
    RejectAppeal.delay.notify(comment)
  end

现在,如果我删除延迟方法并将其作为RejectAppeal.notify(comment),则电子邮件将完全发送出去。但是delay我不知道会发生什么。在延迟的工作职位日志中我没有看到任何内容。虽然在开发日志中我确实注意到该条目存储在或{至少BEGINS动作中。

对此有何帮助?我在同一个应用程序中的其他几个邮件程序函数上使用延迟方法,它们都被发送出去了,但我不确定这是什么错误

P.S我正在使用Rails 4.0.1

1 个答案:

答案 0 :(得分:1)

延迟的作业是否正确序列化? (检查delayed_jobs表)。运行这个工作有错吗?如果是,错误将存储在last_error列中。

这可能是因为您正在销毁您的评论然后将其传递给延迟的作业,因此,当延迟的作业运行并尝试加载评论以对其执行某些操作时,无法再找到评论。