方法
- 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
来源:显示 | 在 GitHub 上
# File actionpack/lib/action_controller/metal/conditional_get.rb, line 31 def etag(&etagger) self.etaggers += [etagger] end