Spec-Zone.ru › Ruby on Rails 8.1

модуль ActiveRecord::QueryCache::ClassMethods

ActiveRecord::Base включает этот модуль, поэтому эти методы доступны в моделях.

Открытые методы экземпляра

cache () { || ... } Показать исходный код
# 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

Включает кэш запросов в блоке, если настроен Active Record. Если нет, выполняет переданный блок.

uncached (dirties: true) { || ... } Показать исходный код
# 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

Выполняет блок с отключённым кэшем запросов.

Если кэш запросов был включён до выполнения блока, он будет включён снова после его завершения.

Установите dirties: false, чтобы операции записи не очищали кэши запросов для всех соединений. (По умолчанию операции записи помечают кэши запросов всех соединений как устаревшие, поскольку это могут быть реплики, кэш которых после записи окажется неактуальным.)

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API