我有一个清扫器,它应该会过期一些动作缓存。即使调试器在调用 expire_action 之前立即停止,它实际上并没有使操作过期。知道会发生什么吗?
这是相关的清扫器和控制器。
#company_sweeper.rb(在“模型”目录中)
class CompanySweeper < ActionController::Caching::Sweeper
observe Company
def after_save(company)
expire_cache(company) if company.final_save && company.valid?
end
def expire_cache(company)
debugger <= #debugger stops here!
right before the call
I'm trying to make.
expire_action :controller => 'reports',
:action => 'full_report'
end
end
#reports_controller.rb
class ReportsController < ApplicationController
layout false
caches_action :full_report, :supplier_list, :service_categories
cache_sweeper :company_sweeper
def full_report
#do stuff...
end
end
我知道它不会过期的方式是完整的报告会返回旧数据,并且几乎可以立即做出响应。很奇怪,对吧?