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 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
🔎 See on GitHub

uncached(dirties: true, &block)

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

📝 Source code
# File activerecord/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
🔎 See on GitHub