我需要在更新后使父模型的缓存失效,但如果更新删除了父关联,则不会找到父关联,因此缓存不会过期。 watdo& ___&
这实际上是freedrull的问题所以他会加上任何澄清。
答案 0 :(得分:0)
after_update确实是你所需要的,尽管那时候的关联也可能已经消失了。 我建议通过创建一个只删除关联的after_update来测试这个假设。如果你仍然可以获取它 - 那很好。用它来清除缓存碎片。
否则我会建议一种“周围”回调,有点hacky,但应该得到你需要的东西:
<_>在before_update回调中,为你的关联保存一个@variable,然后检查它们是否在after_update中发生了变化before_update :save_associations
after_update :expire_old_associations
def save_associations
@associations_to_check = self.widgets
end
def expire_old_associations
diff = @associations_to_check - self.widgets
expire_fragments_for(diff) if diff.present?
end
请在此处查看可用的回调: