0

缓存对我来说似乎很复杂。缓存的方法太多了,我当然无法遵循其中任何一种。在我的应用程序中,对于每个用户,在他的个人资料中,我显示了 24 个随机用户:

@random_users = User.random(24)

现在我想为每个用户缓存 24 小时的结果。所以用户 A 登录并且查询在 24 小时内只运行一次。然后用户 B 登录并发生同样的事情。但是,我希望单独存储每个用户的缓存结果。这意味着,如果用户 B 在用户 A 之后登录,我不希望用户 A 的缓存过期。我怎样才能做到这一点?

4

1 回答 1

1

为此,您必须为每个用户使用不同的缓存键,以便为每个用户单独保存此信息。例如你可以做

@random_users = Rails.cache.fetch "random_uses_for_user_#{current_user.id}", :expire_in => 24.hours do
  ...
end

假设current_user是您为其获取此信息的用户。

于 2013-07-28T15:25:26.077 回答