Spec-Zone.ru › Ruby on Rails 7.1

модуль ActionController::ConditionalGet::ClassMethods

Публичные методы экземпляров

etag(&etagger) Показать исходный код
# File actionpack/lib/action_controller/metal/conditional_get.rb, line 31
def etag(&etagger)
  self.etaggers += [etagger]
end

Позволяет учитывать дополнительную информацию, относящуюся ко всему контроллеру, при генерации ETag. Например, если вы отображаете страницы, настроенные в зависимости от того, кто в данный момент вошёл в систему, вы можете добавить идентификатор текущего пользователя в ETag, чтобы предотвратить несанкционированное отображение кэшированных страниц.

class InvoicesController < ApplicationController
  etag { current_user&.id }

  def show
    # Etag will differ even for the same invoice when it's viewed by a different current_user
    @invoice = Invoice.find(params[:id])
    fresh_when etag: @invoice
  end
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API