【发布时间】:2011-12-09 16:26:55
【问题描述】:
我刚刚开始使用 ActiveResource,并决定缓存模型的一些位,这样我就不会不停地访问 api。好的,好的。
我查看了即将过期的缓存,并决定实施清扫器(我还没有这样做)。这不起作用。
AR 模型:
class Myresource < ActiveResource::Base
extend ActiveModel::Callbacks
define_model_callbacks :update
"stuff"
def current
Rails.cache.fetch("/key/#{self.id}", :expires_in => 5.minutes) do
Myresource.find(ID)
end
end
end
清道夫:
class MyresourceSweeper < ActionController::Caching::Sweeper
observe Myresource
def after_update(myresource)
expire_cache_for_myresource
end
private
def expire_cache_for_myresource
Rails.cache.delete '/key/myresource.id'
end
end
控制器:
cache_sweeper :myresource_sweeper
因此,我只使用了一点 AR、缓存和 Sweepers,在尝试了各种组合之后,我不知道该去哪里看。我可以从控制台为资源设置和过期,但在应用程序中,缓存被设置,但我所做的一切都没有触发删除。
建议?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 caching activeresource