Module: ActionController::Caching

Extended by:
ActiveSupport::Autoload, ActiveSupport::Concern
Includes:
AbstractController::Callbacks, Actions, ConfigMethods, Fragments, Pages, Sweeping, RackDelegation
Defined in:
lib/action_controller/caching.rb,
lib/action_controller/caching/pages.rb,
lib/action_controller/caching/actions.rb,
lib/action_controller/caching/sweeping.rb,
lib/action_controller/caching/fragments.rb

Overview

Caching is a cheap way of speeding up slow applications by keeping the result of calculations, renderings, and database calls around for subsequent requests. Action Controller affords you three approaches in varying levels of granularity: Page, Action, Fragment.

You can read more about each approach and the sweeping assistance by clicking the modules below.

Note: To turn off all caching and sweeping, set

config.action_controller.perform_caching = false.

Caching stores

All the caching stores from ActiveSupport::Cache are available to be used as backends for Action Controller caching. This setting only affects action and fragment caching as page caching is always written to disk.

Configuration examples (MemoryStore is the default):

config.action_controller.cache_store = :memory_store
config.action_controller.cache_store = :file_store, "/path/to/cache/directory"
config.action_controller.cache_store = :mem_cache_store, "localhost"
config.action_controller.cache_store = :mem_cache_store, Memcached::Rails.new("localhost:11211")
config.action_controller.cache_store = MyOwnStore.new("parameter")

Defined Under Namespace

Modules: Actions, ConfigMethods, Fragments, Pages, Sweeping Classes: Sweeper

Instance Method Summary collapse

Methods included from Pages

#cache_page, #expire_page

Methods included from Actions

#_save_fragment

Methods included from Fragments

#expire_fragment, #fragment_cache_key, #fragment_exist?, #instrument_fragment_cache, #read_fragment, #write_fragment

Methods included from ConfigMethods

#cache_store, #cache_store=

Methods included from AbstractController::Callbacks

#process_action

Methods included from RackDelegation

#dispatch, #reset_session, #response_body=

Instance Method Details

#caching_allowed?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/action_controller/caching.rb', line 72

def caching_allowed?
  request.get? && response.status == 200
end