Rails清理程序失败到期缓存

时间:2014-02-17 16:09:48

标签: ruby-on-rails sweeper

我有这样的扫地机,这个扫地机的目的非常简单,只是为了使一些缓存过期,如下面的代码所示。

module CustomSweeper
  class ArticleSweeper < ActionController::Caching::Sweeper
    observe Article

    def after_update(record)
      expire_cache record
      Rails.logger.debug 'After_update sweeper is activated'
    end

    def after_destroy(record)
      expire_cache record
      Rails.logger.debug record.inspect
      Rails.logger.debug 'After_destroy sweeper is activated'
    end

    private
    def expire_cache(record)
      Rails.logger.debug 'Going to expire index and show'
      expire_action :controller => '/articles', :action => 'index'
      expire_action :controller => '/articles', :action => 'show', :id => record.id
      Rails.logger.debug 'End expiring index and show'
    end
  end
end

奇怪的是,这个清扫器使用after_update正确到期,但是使用after_destroy,没有缓存过期。我在自己的ArticlesController中使用'update',但'destroy'来自rails_admin。但是,我认为'/ articles'中的斜杠确保它匹配正确的:: ArticlesController。你有什么主意吗?为什么我不能在从rails_admin销毁后过期缓存?

0 个答案:

没有答案