我正在使用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任務中的控制器,但..有可能嗎?這是一個很好的做法嗎?