модуль ActiveRecord::Relation::RecordFetchWarning
Открытые методы экземпляров
# File activerecord/lib/active_record/relation/record_fetch_warning.rb, line 19
def exec_queries
QueryRegistry.reset
super.tap do |records|
if logger && ActiveRecord.warn_on_records_fetched_greater_than
if records.length > ActiveRecord.warn_on_records_fetched_greater_than
logger.warn "Query fetched #{records.size} #{@klass} records: #{QueryRegistry.queries.join(";")}"
end
end
end
end Устаревшее: подпишитесь на уведомления sql.active_record и получите доступ к полю количества строк для обнаружения больших наборов результатов.
Когда этот модуль добавлен перед ActiveRecord::Relation и config.active_record.warn_on_records_fetched_greater_than установлено в целое число, если количество записей, возвращаемых запросом, превышает значение warn_on_records_fetched_greater_than, выводится предупреждение. Это позволяет обнаруживать запросы, возвращающие большое количество записей, что может привести к переполнению памяти.
В большинстве случаев получение большого числа записей можно эффективно выполнять с помощью методов ActiveRecord::Batches. Дополнительную информацию см. в ActiveRecord::Batches.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.