Rails fresh_when 应该在 etag 中包含当前用户 ID



我看到很多这样的例子:

def show
@article = Article.find(params[:id])
fresh_when(@article)
end

但是,该页面还包含有关登录用户的信息(如顶部导航(。用户可以:

  • 以用户 A 身份登录
  • 访问文章
  • 注销
  • 以用户 B 身份登录
  • 再次访问文章

。糟糕的是,用户将看到有关用户 A 而不是用户 B 的数据,因为文章未被修改。

如何在哈希 (etag( 中包含当前用户 ID?或者,是否有任何其他解决方案可以避免上述问题?

也许您可以将current_user id 添加到所有控制器中的 etag 中。

class ApplicationController < ActionController::Base
etag { current_user.try :id }
end

这样,您可以解决登录用户的问题,该用户可能会获得与非登录用户不同的内容。

相关内容

  • 没有找到相关文章

最新更新