方法
- 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 33 def etag(&etagger) self.etaggers += [etagger] end