让控制器处理大型XML提要的呈现
module Spree
class FeedsController < Spree::StoreController
...
caches_action :products_out
cache_sweeper FeedSweeper
# XML feed in format of `xxxxxxx.com'
def products_out
@products = Product.all
respond_to do |format|
format.xml
end
end
end
贝娄是相应的清扫工的子类:
module Spree
class FeedSweeper< ActionController::Caching::Sweeper
observe Product
def after_update(product)
# cache_configured? is nil, @controller is nil here, why ?
expire_action(:controller => :feeds,
:action => :products_out,
:format => :xml)
end
end
当Spree::FeedSweeper
更新时,高于Spree::Product
被调用,但似乎expire_action
无声地死亡,缓存无法失效。
有人可以解释这个问题吗?甚至更好地建议一些解决方案?
感谢。
答案 0 :(得分:0)
您使用的是哪个Rails版本?在Rails 3.2.14之后,expire_action
似乎是deprecated。
也许您可以尝试查找密钥,然后使用Rails.cache.delete(key)
直接清除密钥。