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)

См. http://guides.rubyonrails.org/routing.html.

Другие вопросы по тегам