Method: ActionController::Caching::Fragments#expire_fragment
- Defined in:
- actionpack/lib/action_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
%r{pages/\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).
79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'actionpack/lib/action_controller/caching/fragments.rb', line 79 def expire_fragment(key, = nil) return unless cache_configured? key = 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, ) else cache_store.delete(key, ) end end end |