跳至内容 跳至搜索
方法
E

实例公共方法

etag(&etagger)

允许您在生成 ETag 时考虑额外的控制器级信息。例如,如果您根据当前登录的用户提供定制的页面,您可能希望将当前用户 ID 添加到 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
# File actionpack/lib/action_controller/metal/conditional_get.rb, line 33
def etag(&etagger)
  self.etaggers += [etagger]
end