我正在使用PDFKit和它的Middlware將HTML呈現爲PDF,但當我嘗試訪問本地主機時仍然存在TypeError:3000/booklets/1.pdfPDFKit,TypeError「無法將散列轉換爲字符串」
can't convert Hash into String
它說錯誤在BookletsController#show中。這是摘自我的booklets_controller.rb
def show
@booklet = Booklet.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.pdf {
html = render_to_string(:action => "show.html.erb", :formats => [:html])
kit = PDFKit.new(html)
send_data(kit.to_pdf, :filename => "booklet.pdf", :type => 'application/pdf')
return
}
end
end
environnment.rb
# Initialize the rails application
Ziin::Application.initialize!
Mime::Type.register "application/pdf", :pdf
摘自application.rb中
require 'pdfkit'
config.middleware.use "PDFKit::Middleware"
PDFKit.configure do |config|
config.wkhtmltopdf = { :exe_path => '/usr/local/bin/wkhtmltopdf' }
end
該錯誤似乎來自render_to_string調用。你有沒有堆棧跟蹤?此外,我建議你嘗試在調試模式下運行你的Rails服務器(rails s --debugger),並嘗試遵循代碼流。這裏是一個鏈接,讓您開始調試rails應用程序:http://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-ruby-debug –