caching - Rails Cache Sweeper -
i'm trying implement cache sweeper filter specific controller action.
class productscontroller < actioncontroller       caches_action :index       cache_sweeper :product_sweeper        def index          @products = product.all      end       def update_some_state       #... stuff doesn't trigger product save, invalidates cache     end end    sweeper class:
class productsweeper < actioncontroller::caching::sweeper     observe product      #expire fragment after model update     def after_save        expire_fragment('all_available_products')        end      #expire different cache after controller method modifying state called.     def after_update_some_state         expire_action(:controller => 'products', :action => 'index')      end end   the activerecord callback 'after_save' work fine, callback on controller action 'after_update_some_state' never seems called.
looks missing controller name when trying callbacks controller actions working. sweeper should be:
class productsweeper < actioncontroller::caching::sweeper     observe product      #expire fragment after model update     def after_save        expire_fragment('all_available_products')        end      #expire different cache after controller method modifying state called.     def after_products_update_some_state         expire_action(:controller => 'products', :action => 'index')      end      #can use before:     def before_products_update_some_state         #do before.      end end      
Comments
Post a Comment