class FragmentSweeper < ActionController::Caching::Sweeper observe Listing def after_create(record) expire_cache_for(record) end def after_save(record) expire_cache_for(record) end def after_update(record) expire_cache_for(record) end def after_destroy(record) expire_cache_for(record) end private def expire_cache_for(record) @controller ||= ActionController::Base.new expire_fragment "listings/#{record.id}-#{record.updated_at.to_i}" Rails.logger.debug "***\n>>> Listing #{record.id} cache fragment expired!\n***" if Rails.env.development? end end