ActiveRecord::Base extends this module, so these methods are available in models.

Methods

Instance Public methods

cache(&block)

Enable the query cache within the block if Active Record is configured. If it’s not, it will execute the given block.

📝 Source code
# File activerecord/lib/active_record/query_cache.rb, line 10
      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
🔎 See on GitHub

uncached(dirties: true, &block)

Runs the block with the query cache disabled.

If the query cache was enabled before the block was executed, it is enabled again after it.

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.)

📝 Source code
# File activerecord/lib/active_record/query_cache.rb, line 33
      def uncached(dirties: true, &block)
        if connected? || !configurations.empty?
          connection_pool.disable_query_cache(dirties: dirties, &block)
        else
          yield
        end
      end
🔎 See on GitHub