Module: ActionController::ConditionalGet::ClassMethods
- Defined in:
- lib/action_controller/metal/conditional_get.rb
Instance Method Summary collapse
-
#etag(&etagger) ⇒ Object
Allows you to consider additional controller-wide information when generating an ETag.
Instance Method Details
#etag(&etagger) ⇒ Object
Allows you to consider additional controller-wide information when generating an ETag. For example, if you serve pages tailored depending on who’s logged in at the moment, you may want to add the current user id to be part of the ETag to prevent unauthorized displaying of cached pages.
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
31 32 33 |
# File 'lib/action_controller/metal/conditional_get.rb', line 31 def etag(&etagger) self.etaggers += [etagger] end |