我正在使用rails 3.0和PDFKit。 SASS和HAML,但我还没有实施资产管道。Rails 3.0 PDFKit,包含资产和image_tag生成PDF时产生一个耙子任务
如果我从控制器拨打电话,我可以生成带图像的完美样式的PDF,并调用PDFKit.new传递render_to_string:show。 但是,如果我通过一个rake任务做的一样,在没有产生款式我的PDF和IMAGE_TAG帮手抛出这样的错误:
can't convert nil into String
当然,我做错了什么在rake任务。 ..但一切在控制器中工作...我失踪了什么? 我应该在rake任务中包含一些东西吗?或者可能使用其他视图与内联样式和绝对路径? 调用是这些:
控制器版本
def generate_html_invoice
render_to_string :show, layout: 'mypdflayout'
end
mypdf = PDFKit.new html_generator
Rake任务VERSION
def generate_html_invoice
invoice_view = ActionView::Base.new(MyWeb::Application.config.paths["app/views"].first)
invoice_view.assign({ ....... various params here})
html_invoice = invoice_view.render(template: "invoices/show", layout: 'mypdflayout')
return html_invoice
mypdf = PDFKit.new html_generator
同样的错误是由image_tag
助手和stylesheet_link_tag
帮手抛出
的另一种方式可能是实例化在rake任务中的控制器,但..有可能吗?这是一个很好的做法吗?