我有一个 sinatra 应用程序,它执行黄瓜测试并发送带有结果的电子邮件通知。电子邮件 gem 是 Pony,并且有一个用于此通知的 haml 模板。
此逻辑适用于路线:
require 'sinatra'
require 'haml'
require 'pony'
get "/execute_all/?" do
execute_all_tests()
Pony.mail :to => "recipients@email.com",
:from => "do-not-reply@email.com",
:subject => "Test results,
:html_body => haml(:email_layout)
redirect "/"
end
但是,当我将计划作业与 rufus 调度程序一起用于这些操作时,出现以下异常:
scheduler caught exception:
undefined method `haml' for main:Object
代码是来自路线的copypasta:
scheduler = Rufus::Scheduler.start_new
scheduler.every '2h' do
execute_all_tests()
Pony.mail :to => "recipients@email.com",
:from => "do-not-reply@email.com",
:subject => "Test results,
:html_body => haml(:email_layout)
end
所有两种方法都在同一个文件中,执行该文件以运行 Sinatra 应用程序。
如何摆脱此异常,并按计划发送带有 haml 模板的电子邮件?