从延迟作业调用时,ActionMailer 失败并显示 "undefined function"

标签 actionmailer delayed-job ruby-on-rails-2

因此,如果我尝试直接使用 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/

相关文章:

ruby-on-rails - 为 ActionMailer 渲染不同的 View (模板)

ruby-on-rails-3 - Delayed::Worker.new.work_off 是否会在未来的 run_at 时间执行作业?

ruby-on-rails - Rspec - 检查数组是否具有与其他数组相同的元素,无论顺序如何

ruby-on-rails - 为什么我的 rake 调用导致 'undefined method ` source_index`' 错误?

ruby-on-rails-4 - Net::SMTPAuthenticationError,535-5.7.8 用户名和密码不被接受

ruby-on-rails - Rails - AdminMailer - 设置发件人姓名

ruby-on-rails - ActionMailer 传递命令返回什么?

ruby-on-rails - 如何在测试中使delayed_job输出静音?

ruby-on-rails - Ruby,延迟作业,延迟 :Backend:Activerecord

ruby-on-rails - 在 Ruby on Rails 2.3.11 中使用控制台中的 URL 帮助程序