Wicked PDF Gem сгенерированные просмотры PDF кэшируются браузерами |Рельсы 5.2 - PullRequest
0 голосов
/ 28 декабря 2018

Я работаю над проектом, который имеет функцию экспорта index просмотров в PDF.Все это прекрасно работает с гемом Wicked PDF , однако в работе сгенерированные PDF-файлы кэшируются браузерами и поэтому могут быть устаревшими.Обновление представления PDF приводит к получению последних данных, но простое перемещение к представлению PDF, по-видимому, использует только документ, кэшированный браузером.Есть ли способ предотвратить кэширование представления PDF браузерами?

Контроллер

class InvoicesController < ApplicationController
  # GET /invoices
  def index
    @invoices = Invoice.all

    respond_to do |format|
      format.html
      format.pdf do
        render pdf: "Invoices_#{Time.current.strftime("%Y_%m_%d_at_%H_%M")}",
               template:       'invoices/index',
               show_as_html:   params.key?('debug'),
               title:          "Invoices_#{Time.current.strftime("%Y_%m_%d_at_%H_%M")}", # otherwise first page title is used
               orientation:    :landscape,
               margin:         { top:    15,                     # default 10 (mm)
                                 bottom: 15,
                                 left:   15,
                                 right:  45 },
               footer:         { left: "Extracted: #{Time.current.to_formatted_s(:date_at_time)}",
                                 right: "Page [page] of [topage]" }
      end
    end
  end
end

Любые предложения приветствуются.

1 Ответ

0 голосов
/ 28 декабря 2018

Вы можете просто очистить кеш для этой страницы

 class InvoicesController < ApplicationController
    before_action :set_cache_headers

      private

      def set_cache_headers
        response.headers["Cache-Control"] = "no-cache, no-store"
        response.headers["Pragma"] = "no-cache"
        response.headers["Expires"] = Time.now
      end
    end
end
...