Method: AbstractController::Caching::Fragments#expire_fragment

Defined in:
actionpack/lib/abstract_controller/caching/fragments.rb

#expire_fragment(key, options = nil) ⇒ Object

Removes fragments from the cache.

key can take one of three forms:

  • String - This would normally take the form of a path, like pages/45/notes.

  • Hash - Treated as an implicit call to url_for, like ‘{ controller: ’pages’, action: ‘notes’, id: 45}‘

  • Regexp - Will remove any fragment that matches, so ‘%rpages/d*/notes` might remove all notes. Make sure you don’t use anchors in the regex (‘^` or `$`) because the actual filename matched looks like ./cache/filename/path.cache. Note: Regexp expiration is only supported on caches that can iterate over all keys (unlike memcached).

options is passed through to the cache store’s delete method (or delete_matched, for Regexp keys).



131
132
133
134
135
136
137
138
139
140
141
142
# File 'actionpack/lib/abstract_controller/caching/fragments.rb', line 131

def expire_fragment(key, options = nil)
  return unless cache_configured?
  key = combined_fragment_cache_key(key) unless key.is_a?(Regexp)

  instrument_fragment_cache :expire_fragment, key do
    if key.is_a?(Regexp)
      cache_store.delete_matched(key, options)
    else
      cache_store.delete(key, options)
    end
  end
end