Module: ActiveRecord::Relation::RecordFetchWarning
- Included in:
 - ActiveRecord::Relation
 
- Defined in:
 - lib/active_record/relation/record_fetch_warning.rb
 
Defined Under Namespace
Classes: QueryRegistry
Instance Method Summary collapse
- 
  
    
      #exec_queries  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
When this module is prepended to ActiveRecord::Relation and
config.active_record.warn_on_records_fetched_greater_thanis set to an integer, if the number of records a query returns is greater than the value ofwarn_on_records_fetched_greater_than, a warning is logged. 
Instance Method Details
#exec_queries ⇒ Object
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 ActiveRecord::Batches for more information.
      16 17 18 19 20 21 22 23 24 25 26  | 
    
      # File 'lib/active_record/relation/record_fetch_warning.rb', line 16 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  |