Pdfkit在本地不起作用

时间:2016-10-25 10:36:22

标签: ruby pdf-generation ruby-on-rails-5 pdfkit

我正在使用pdfkit生成pdf,使用Rails 5。 当我尝试下载外部网站的网页时,就像google一样。但是,当我想下载我的网站页面时,它什么也没做。加载游标永远加载。

这是我的代码:

控制器/产品

def download
   @product = Product.find(params[:product_id])
   file_content = html_to_pdf(request.url, @product.id)
   open_file = File.read(file_content)
   send_data(open_file,
                filename: "ptf_#{@product.id}",
                disposition: 'attachment')
  end

产品/显示

  <%= button_to 'download', download_product_path(product_id: @product.id), method: :get} %>

关注的方法

 def html_to_pdf(url, id)
   kit = PDFKit.new(url)
   file = kit.to_file('ptf_'+ id.to_s + '.pdf')
 end

如果我尝试file_content = html_to_pdf('http://google.com', @product.id),它可以正常工作。问题是在当地。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

file_content = html_to_pdf(request.url, @product.id)

request.url是指您当前的网址,因此您一遍又一遍地递归调用download操作。

相反,您必须使用产品的显示网址:

file_content = html_to_pdf(products_url(@product.id), @product.id)

请参阅http://guides.rubyonrails.org/routing.html#path-and-url-helpers