ActiveRecord cache_key 不会为包含的表更改
ActiveRecord cache_key does not change for included tables
我有疑问
query = A.all.includes(:bs)
Rails.cache.fetch(query.cache_key) do
.....
end
当 B 模型中包含的记录内容发生变化时,缓存键未过期并获取旧数据。有什么方法可以让 cache_key 检查 includes
中表的更改吗?
阅读 api 文档并阅读 cache_key 的源代码后,似乎不支持查询中的 table 连接,并且缓存键仅在第一个检查更新模型。除了实现一个自定义版本的缓存键之外,似乎没有一个简单的修复方法,它可以做类似的事情,但适用于多个 tables。
我有疑问
query = A.all.includes(:bs)
Rails.cache.fetch(query.cache_key) do
.....
end
当 B 模型中包含的记录内容发生变化时,缓存键未过期并获取旧数据。有什么方法可以让 cache_key 检查 includes
中表的更改吗?
阅读 api 文档并阅读 cache_key 的源代码后,似乎不支持查询中的 table 连接,并且缓存键仅在第一个检查更新模型。除了实现一个自定义版本的缓存键之外,似乎没有一个简单的修复方法,它可以做类似的事情,但适用于多个 tables。