Spec-Zone.ru › Ruby on Rails 6.1

модуль ActiveRecord::Relation::RecordFetchWarning

Публичные методы экземпляра

exec_queries() Показать исходный код
# File activerecord/lib/active_record/relation/record_fetch_warning.rb, line 16
def exec_queries
  QueryRegistry.reset

  super.tap do |records|
    if logger && warn_on_records_fetched_greater_than
      if records.length > warn_on_records_fetched_greater_than
        logger.warn "Query fetched #{records.size} #{@klass} records: #{QueryRegistry.queries.join(";")}"
      end
    end
  end
end

Когда этот модуль добавляется в префикс к ActiveRecord::Relation и config.active_record.warn_on_records_fetched_greater_than устанавливается в целое число, если количество записей, возвращаемых запросом, больше значения warn_on_records_fetched_greater_than, выводится предупреждение. Это позволяет обнаруживать запросы, возвращающие большое количество записей, что может привести к увеличению потребления памяти.

В большинстве случаев извлечение большого количества записей может выполняться эффективно с помощью методов ActiveRecord::Batches. Дополнительную информацию см. в ActiveRecord::Batches.

Вызывает метод суперкласса

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

Spec-Zone.ru

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