我一直致力于Ruby on Rails项目(使用'测量员' gem的基本调查应用程序),该项目允许用户下载已完成调查结果的pdf。为了完成,我编写了一个基本的rake任务(如下所示),它调用wkhtmltopdf命令行实用程序,每隔15分钟通过/ cron将HTML / CSS转换为pdf。
这是rake任务(lib/tasks/pdf_survey_results.rake
):
desc "PDF Completed Survey Results for Admin Download"
task :pdf_survey_results => :environment do
# iterate through all the response sets
ResponseSet.all.each do |response_set|
if !response_set.completed_at.blank?
puts "response set #{response_set.id} is complete, checking for pdf..."
if response_set.pdf_url.blank?
puts "no pdf found, now generating..."
# make the pdf
result = system "wkhtmltopdf #{BASE_URL}/surveys/student-questionnaire/#{response_set.access_code} /opt/deployed_rails_apps/survey_app/public/survey-pdfs/survey-#{response_set.access_code}.pdf"
if !result.nil?
response_set.pdf_url = "#{BASE_URL}/survey-pdfs/survey-#{response_set.access_code}.pdf"
response_set.save
end
end
end
end
end
这在我的开发环境(OS X)中完全正常,但是当我部署到Ubuntu 14.04时,
wkhtmltopdf http://surveyurl.com sample.pdf
)rake pdf_survey_results
将通过&#34找到输出;没有找到pdf,现在正在生成......"但没有来自wkhtmltopdf工具的输出,即使我在本地OS X开发环境中运行时看到此输出)我最不习惯的是,我无法弄清楚为什么rake任务在Mac OS X中没有给我wkhtmltopdf的文本输出,即使命令行实用程序本身工作正常。到目前为止,这方面使我对调试有点困难。顺便说一句,我在这个项目中使用独角兽作为应用程序服务器。
非常感谢任何建议!如果不清楚,将回答任何相关问题。