module 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.