我正试着在我的网站上设置一些缓存,但我遇到了让缓存清理器工作的问题。我遵循了Railscast,但是当我试图用模型加载一个页面时,我得到了一个错误。以下是我到目前为止所做的工作:
1.)添加了app/sweepers目录,并在其中放置了一个基本的sweeper:
class TeamMemberSweeper < ActionController::Caching::Sweeper
observe TeamMember
def after_create(team_member)
expire_nav_menus
end
def after_destroy(team_member)
expire_nav_menus
end
private
def expire_nav_menus(athlete_id)
expire_fragment(...)
end
end2.)将以下行添加到TeamMember模型:
cache_sweeper :team_member_sweeper, :only => [:create, :destroy]3.)将以下行添加到config/environment.rb ment.rb并重启我的服务器:
config.load_paths += %W( #{RAILS_ROOT}/app/sweepers )此时,每当我访问TeamMember模型时,我都会得到以下错误:
undefined method `cache_sweeper' for #<Class:0x23128cc>为了让它正常工作我错过了什么?
发布于 2008-12-31 18:04:24
我想是因为
"cache_sweeper :team_member_sweeper,:only => :create,:destroy“
应该放在你想要过期的控制器中,而不是模型中。
我遇到过类似的问题,因为我特别想从模型中过期,但显然这在Rails中是不可能的,也不是很难做到的。
https://stackoverflow.com/questions/403143
复制相似问题