我有一些不经常更新的数据 - 例如,每隔几周就会更新一次。此外,它们在用户之间共享,并且可能需要一些时间来呈现为JSON。这使它们成为缓存的理想选择。所以,我通过caches_action
缓存了它们的渲染输出。
很快,我将从Resque作业更新这些数据,并且在成功更新之后,我将需要使缓存无效。我不知道该怎么做,因为它似乎是控制器的工作。将它放在模型中似乎是不对的,因为它更多的是表示层关注。 (毕竟,模型为什么要关心JSON输出永远需要?)
我不认为清扫车会在这里工作,因为它在控制器内运行,对吗?我见过人们建议在工作中实例化有问题的控制器,但这也不是很好。有没有人以干涸的方式处理这个问题?我认为这样做的唯一方法是手动操作Rails.cache
。
答案 0 :(得分:2)
观察员会为你工作吗?您可以设置观察者来监视记录的更改,然后在更改后执行某些操作,但这主要是为了减少模型中的混乱。你必须在任何一个地方使用Rail.cache。观察者只是清除模型中的代码。
退房:
http://www.daokaous.com/rails3.0.0_doc/classes/ActiveModel/Observer.html