我在Rails中遇到了一些关于Sweepers和Caching的问题。
第一个视图中正在生成/ cache中的.html文件。
需要时调用Sweeper动作。
但是,清理程序操作不会从/ cache
中删除.html页面以下代码从我的/ controllers和/ sweepers目录中删除。 puts
行都记录,所以我知道我们正在执行正常 - expire命令似乎没有删除文件。
任何人都知道我可以在哪里搞笑?
class WidgetsController < ApplicationController
cache_sweeper :widget_sweeper
caches_page :help
def help
render :template => '/widgets/help.html'
end
end
class WidgetSweeper < ActionController::Caching::Sweeper
observe HelpPage
def after_save(record)
puts "record "
puts record.inspect
expire_page(:controller => 'widgets', :action => 'help')
puts "ok!"
end
end
答案 0 :(得分:0)
您是否只是通过在控制台中操作一些HelpPage记录来测试它?看起来您必须影响控制器中的更改。
我使用您在上面提供的代码创建了一个测试应用程序,并在启用缓存的情况下运行它。我在rails控制台中创建了一些新的HelpPage记录,我得到了两条日志消息但没有页面到期。
但是,当我在控制器中创建一个新的HelpPage时,我确实按预期使页面到期。