【发布时间】:2012-07-08 09:42:31
【问题描述】:
我有一个 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模板的电子邮件作为预定作业发送?
【问题讨论】:
标签: sinatra haml rufus-scheduler pony