我有一个用户可以保存很多搜索和很多任务。我正在使用以下内容缓存它们
- cache user do
- user.tasks.each do |task|
- cache task do
# do something with task
- cache user do
- user.saved_searches.each do |search|
- cache search do
# do something with search
我添加了通过选项更新用户的touch
选项,只要这些记录中的任何一个被更新。我想澄清的问题是这种情况:
我已经更新了一个搜索,它使该搜索的缓存过期,实际上是用户的缓存。由于用户的缓存已过期,user.tasks
将被执行。
有没有办法防止这种情况?
我正在考虑添加一个密钥cache user
并手动使我在使用cache_digest
gem 之前一直在做的缓存过期,但我不知道该怎么做。