find_each(options = {}) public

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.
Show source
Register or log in to add new notes.