У меня есть представление, в котором используется кэширование «Русская кукла», где кэшируется вся коллекция элементов, и каждый элемент в коллекции кэшируется индивидуально в этом кеше.
Однако каждый элемент в коллекции должен отображать ссылки для редактирования/удаления в зависимости от разрешений текущего пользователя, предоставленных через CanCan. Таким образом, пользователь А увидит ссылки редактирования/удаления только рядом со своими сообщениями, но не рядом с сообщениями пользователя Б.
Что ж, всякий раз, когда пользователь А создает сообщение, оно кэшируется с соответствующими ссылками на редактирование/удаление, поскольку они должны быть видны ему в зависимости от его разрешений. Но когда пользователь Б просматривает коллекцию, он показывает кешированный пост пользователя А вместе со ссылками на редактирование/удаление, которые он не должен видеть. Конечно, CanCan предотвращает выполнение этих действий редактирования/удаления, но ссылки все еще присутствуют.
Можно ли как-то создать отдельные кэши на основе current_user.id и предотвратить появление множества версий (почти) идентичного кэшированного контента?