我正在使用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)
,它可以正常工作。问题是在当地。
谢谢你的帮助。
答案 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