调用清除程序时,Rails不会删除缓存/ .html页面

时间:2011-02-04 22:31:10

标签: ruby-on-rails sweeper

我在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

1 个答案:

答案 0 :(得分:0)

您是否只是通过在控制台中操作一些HelpPage记录来测试它?看起来您必须影响控制器中的更改。

我使用您在上面提供的代码创建了一个测试应用程序,并在启用缓存的情况下运行它。我在rails控制台中创建了一些新的HelpPage记录,我得到了两条日志消息但没有页面到期。

但是,当我在控制器中创建一个新的HelpPage时,我确实按预期使页面到期。