ActiveRecord cache_key不会更改包含的表

时间:2019-05-07 01:04:43

标签: ruby-on-rails ruby rails-activerecord

我有查询

  query = A.all.includes(:bs)

  Rails.cache.fetch(query.cache_key) do
    .....
  end

当B模型中包含的记录的内容发生更改时,缓存键不会过期,并且将提取旧数据。有什么方法可以让cache_key检查includes中表的更改吗?

1 个答案:

答案 0 :(得分:0)

阅读api文档并阅读cache_key的源代码后,似乎不支持查询中的表联接,并且缓存键仅检查第一个模型上的更新。除了实现自定义版本的缓存键(对多个表执行类似的操作)之外,似乎没有简单的修复方法。