модуль ActionController::ConditionalGet::ClassMethods
Публичные методы экземпляра
# File actionpack/lib/action_controller/metal/conditional_get.rb, line 33 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.