rails 3和PDFkit

我正在尝试按照本教程 。

当我将.pdf添加到我的url时,它什么也没做。 我的控制器有:

 respond_to :html, :pdf. 

我的mime类型已经宣布。

我也试过这个:

 respond_to do |format| format.html format.pdf { html = render_to_string(:layout => false , :action => "www.google.fr") kit = PDFKit.new(html) send_data(kit.to_pdf, :filename => "candidats.pdf", :type => 'application/pdf') return # to avoid double render call } end 

但它不起作用,我不会得到错误。 我的浏览器一直在等localhost,但没有任何反应。

那么我应该如何尝试使用pdfkit?

编辑2:

根据我的rails的日志,rails成功地呈现HTML。 我在.log中看到这个,rails不会将它发送到webrick或我的浏览器。 我的浏览器一直在等待,等待,没有任何事情发生。 我这里只有一些小照片。

编辑3:我的webrick服务器似乎无法响应其他请求,一旦他开始获得我的url的.pdf版本,任何想法?

编辑4:

我使用rails 3.1,wkhtmltopdf 0.9.5(Windows安装程序)和pdfkit 0.5.2

即使在开发模式下,我找到了更好的方式来访问我的.pdfurl。

 # Enable threaded mode config.threadsafe! # Code is not reloaded between requests #config.cache_classes = true 

Config.cache_classes是一个注释,因为我遇到了一些问题。 这样pdfkit甚至可以使用rails 3.1。 但是,您不会在请求之间重新加载代码。

这不是一个真正的问题,因为你首先处理你的html,并切换配置,以检查pdf结果。 这样您就不必担心生产数据库了。

感谢另一个堆栈溢出答案我得到了解决方案的一部分。

这有效:

 html = 'Toto de combats' @pdf = PDFKit.new(html) send_data @pdf.to_pdf, :filename => "whatever.pdf", :type => "application/pdf", :disposition => "attachement" 

您可以通过inline,替换attachement inline,因此pdf会显示在浏览器中。

在我讨论的堆栈溢出答案中(我不记得链接) .to_pdf丢失,但是必须的。 否则PDF阅读器无法识别它。

我正试图用.pdfurl来完成这项工作。

编辑3:

我的.pdfurl问题已经解决了。 rails 3.1的已知问题,但谷歌无法找到它们。

解释: 解释

解决方法(尚未尝试过)。 解决方法