instance method find_each

Ruby on Rails 4.0.13

Since v3.1.12

Available in: v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

find_each(options = {})

Looping through a collection of records from the database (using the all method, for example) is very inefficient since it will try to instantiate all the objects at once.

In that case, batch processing methods allow you to work with the records in batches, thereby greatly reducing memory consumption.

The #find_each method uses #find_in_batches with a batch size of 1000 (or as specified by the :batch_size option).

 Person.all.find_each do |person|
   person.do_awesome_stuff
 end

 Person.where("age > 21").find_each do |person|
   person.party_all_night!
 end

You can also pass the +:start+ option to specify
an offset to control the starting point.

Parameters

options opt = {}
Source
# File activerecord/lib/active_record/relation/batches.rb, line 24
    def find_each(options = {})
      find_in_batches(options) do |records|
        records.each { |record| yield record }
      end
    end

Defined in activerecord/lib/active_record/relation/batches.rb line 24 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::Batches

Type at least 2 characters to search.

↑↓ navigate · open · esc close