module AbstractController::Caching::Fragments::ClassMethods

Public Instance Methods

fragment_cache_key(value = nil, &key) Show source
# File actionpack/lib/abstract_controller/caching/fragments.rb, line 53
def fragment_cache_key(value = nil, &key)
  self.fragment_cache_keys += [key || ->{ value }]
end

Allows you to specify controller-wide key prefixes for cache fragments. Pass either a constant value, or a block which computes a value each time a cache key is generated.

For example, you may want to prefix all fragment cache keys with a global version identifier, so you can easily invalidate all caches.

class ApplicationController
  fragment_cache_key "v1"
end

When it's time to invalidate all fragments, simply change the string constant. Or, progressively roll out the cache invalidation using a computed value:

class ApplicationController
  fragment_cache_key do
    @account.id.odd? ? "v1" : "v2"
  end
end

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.