module ActiveRecord::Relation::RecordFetchWarning
Public Instance Methods
# File activerecord/lib/active_record/relation/record_fetch_warning.rb, line 14
def exec_queries
QueryRegistry.reset
super.tap do
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
When this module is prepended to ActiveRecord::Relation and `config.active_record.warn_on_records_fetched_greater_than` is set to an integer, if the number of records a query returns is greater than the value of `warn_on_records_fetched_greater_than`, a warning is logged. This allows for the detection of queries that return a large number of records, which could cause memory bloat.
In most cases, fetching large number of records can be performed efficiently using the ActiveRecord::Batches methods. See active_record/lib/relation/batches.rb for more information.
Calls superclass method
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.