Module: ActiveRecord::QueryCache::ClassMethods
- Included in:
- Base
- Defined in:
- lib/active_record/query_cache.rb
Instance Method Summary collapse
-
#cache(&block) ⇒ Object
Enable the query cache within the block if Active Record is configured.
-
#uncached(dirties: true, &block) ⇒ Object
Disable the query cache within the block if Active Record is configured.
Instance Method Details
#cache(&block) ⇒ Object
Enable the query cache within the block if Active Record is configured. If it’s not, it will execute the given block.
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/active_record/query_cache.rb', line 9 def cache(&block) if connected? || !configurations.empty? pool = connection_pool was_enabled = pool.query_cache_enabled begin pool.enable_query_cache(&block) ensure pool.clear_query_cache unless was_enabled end else yield end end |
#uncached(dirties: true, &block) ⇒ Object
Disable the query cache within the block if Active Record is configured. If it’s not, it will execute the given block.
Set dirties: false
to prevent query caches on all connections from being cleared by write operations. (By default, write operations dirty all connections’ query caches in case they are replicas whose cache would now be outdated.)
28 29 30 31 32 33 34 |
# File 'lib/active_record/query_cache.rb', line 28 def uncached(dirties: true, &block) if connected? || !configurations.empty? connection_pool.disable_query_cache(dirties: dirties, &block) else yield end end |