多くの保存された検索と多くのタスクを持つことができるユーザーがいます。私は以下を使用してそれらをキャッシュしています
- 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
gemを使用する前に行っていたキャッシュにキーを追加して手動で期限切れにすることを考えてcache_digest
いますが、その方法がわかりません。