每个用户的rails缓存

时间:2014-08-06 23:31:57

标签: 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字段几乎用作查找要使用的缓存。这可能吗?感谢

1 个答案:

答案 0 :(得分:0)

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

此外,你还想成功:

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

因此,只有在事件发生变化时(不是,如果用户更改了他的名字),所述用户的缓存才会改变