因此,如果我尝试直接使用 action mailer 发送电子邮件,我可以使用所有应用程序助手,如 url_for、content_for 等,但是当我尝试使用 delay_job [send_later] 执行完全相同的操作 [发送电子邮件] 时,我的延迟作业失败了,未定义的函数 content_for 等,所以我的 ActionMailer 中好像没有加载任何帮助程序。我正在使用 rails 2.3.8、active_mailer 2.3.8 和 delay_job 2.0.3

谢谢!!

最佳答案

您的问题是您的 sw 不是 ActionView 的子项,因为您的 sw 不是由于网络请求而启动的。相反,您的 sw 是由 DelayedJob 机制启动的。

解决方案:创建并使用您自己的 ActionView 实例——

action_view = ActionView::Base.new # used for calling helper tags, eg link_to
html = action_view.link_to(link_text, url)
# etc...

关于从延迟作业调用时,ActionMailer 因 "undefined function"失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3066212/

10-10 17:58