ruby-on-rails - 每个用户的rails缓存

标签 ruby-on-rails caching

我想为每个用户都有一个缓存。例如,我想做这样的事情

<% cache [current_user, events] do %>
  <%= render events %>
<% end %>

http://api.rubyonrails.org/classes/ActionView/Helpers/CacheHelper.html#method-i-cache

但根据文档,更新“current_user”或“events”将使缓存无效。如果我理解正确的话,这意味着如果两个用户交替访问缓存,那么缓存每次都会失效。是否可以创建一个缓存系统,以便每个用户都可以获得自己的缓存,并且缓存将根据其他事件(例如耗时或用户注销)而过期?

我只希望缓存在事件更改时失效,而 current_user 字段几乎用作查找要使用的缓存。这可能吗?谢谢

最佳答案

两个用户已经拥有不同的缓存。缓存参数用于标识应从哪个缓存轨提取数据。这样你就可以开始了。

而且,你可能也想做到:

<% cache [current_user.id, events] do %>

因此,仅当事件发生变化时,该用户的缓存才会发生变化(而不是,即,如果用户更改了他的名字)

关于ruby-on-rails - 每个用户的rails缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25171961/

相关文章:

sql - 按值对进行 ActiveRecord 查询

html - 页面上的多个 form_fors 导致 _method 属性出现问题

ruby-on-rails - Ruby on Rails : link_to action,没有路线匹配

ruby-on-rails - 安装特定的 Ruby 版本

Django 和 Redis 包选项

javascript - 外部JS和浏览器

php - 用于网络社交网络的 Ruby on Rails、PHP 或 C++

node.js - 如何在node.js中获取CNAME记录的权威TTL值?

spring-boot - 在 Spring Boot 应用程序中缓存 OAuth2 token ?

java - MyBatis - 缓存刷新后不更新嵌套结果