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 ответ
file_content = html_to_pdf(request.url, @product.id)
request.url
относится к вашему текущему URL, поэтому вы звоните download
действие рекурсивно снова и снова.
Вместо этого вы должны использовать URL-адрес шоу продукта:
file_content = html_to_pdf(products_url(@product.id), @product.id)