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。