модуль ActiveRecord::QueryCache::ClassMethods
ActiveRecord::Base включает этот модуль, поэтому эти методы доступны в моделях.
Открытые методы экземпляра
# 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. Если нет, выполняет переданный блок.
# 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.