每当v0.8.4使用gem时都会遇到问题。 config/schedule.rb
看起来像这样:
every :day, :at => '8am' do
runner "TimeclockReportSender.sendReports"
end
问题是TimeclockReportSender.sendReports
代码没有执行。该文件位于/vendor/plugins/plugin_name/lib/reports/timeclock_report.rb
。
我正在使用redmine 1.1.1在rails 2.3.5项目中开发。任何人都知道我如何指定何时执行插件模块代码或者如果我必须将这段代码放在别处。
module TimeclockReportSender
require "reports/timeclock_report.rb"
#verify and send every report that has date_to_send == today
def self.sendReports
reports = CtTimeclockReport.find(:all)
reports.each do |rpt|
if !rpt.date_to_send.nil?
if rpt.date_to_send.to_date() == Date.today
users = CtTimeclockReport.getAllUsersFromReport(rpt)
period = CtSettingsPeriod.getPeriod(rpt.ct_settings_period_id)
project = Project.find(period.project_id)
pdf = TimeclockReport.createAndGetReport(rpt,project)
sent = TimeclockReportSender.sendReport(rpt,pdf,users)
TimeclockReportSender.updateReportDate(rpt)
end
end
end
end
#send a single report pdf via email to the users list
def self.sendReport(report,pdfReport,users)
#send the report to each user
users.each do |usr|
usr = User.find(usr.user_id)
if !usr.nil?
CtMailer.deliver_reportEmail(report,pdfReport,usr)
end
end
return true
end
当我运行命令时:
script/runner -e production '\''TimeclockReportSender.sendReports'\'''
在rails root,它会询问s me some input ... this command it
每当
要运行sendReports方法,我必须使用我的控制器中的文件
require "reports/timeclock_report_sender.rb"
我从cron运行了cmd,发现rails没有找到我的模块。解决方案是将代码放入我的插件中的模型中,而不是找到他的代码。谢谢4人:D
答案 0 :(得分:0)
问题解决了!我发现它没有通过从cron运行cmd执行的原因然后我发现rails没有找到我的模块。
解决方案是将代码放入我的插件中的模型中,而不是cron找到他的代码。谢谢你的帮助。