我引用了下面的引用,我可以从中看出一些意义:
“缓存的页面和片段通常取决于模型状态。缓存不关心哪些操作创建、更改或销毁相关模型。因此,使用普通观察者似乎是过期缓存的最佳选择。”
例如。我有一个更新模型的 resque worker。当模型更新/创建时,我需要一个片段缓存过期。这是扫地机做不到的。
但是,使用观察者意味着我需要在模型或 Resque 工作中使用类似的东西:
ActionController::Base.new.expire_fragment('foobar')
模型本身不应该知道缓存。这也将打破 MVC 原则,从而导致丑陋丑陋的结果。