instance method etag

Ruby on Rails 8.0.4

Since v4.0.13

Available in: v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

etag(&etagger)

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

Parameters

etagger block
Source
# File actionpack/lib/action_controller/metal/conditional_get.rb, line 33
      def etag(&etagger)
        self.etaggers += [etagger]
      end

Defined in actionpack/lib/action_controller/metal/conditional_get.rb line 33 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionController::ConditionalGet::ClassMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close