我有一个使用俄罗斯娃娃缓存的视图,其中缓存了整个项目集合,并且集合中的每个项目都单独缓存在该缓存中。
但是,集合中的每个项目都应根据当前用户通过 CanCan 授予的权限显示编辑/删除链接。因此,用户 A 只会在她自己的帖子旁边看到编辑/删除链接,而不会在用户 B 的帖子旁边看到。
好吧,每当用户 A 创建帖子时,它都会使用适当的编辑/删除链接进行缓存,因为她应该根据她的权限让这些链接可见。但是,当用户 B 查看该集合时,他会看到用户 A 的缓存帖子,以及他不应该看到的编辑/删除链接。当然,CanCan 阻止了这些编辑/删除操作的发生,但链接仍然存在。
是否有根据 current_user.id 创建单个缓存并防止拥有(几乎)相同缓存内容的版本?