method
each_record
v7.1.3.2 -
Show latest stable
-
0 notes -
Class: BatchEnumerator
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1 (0)
- 5.1.7 (0)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
each_record(&block)
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.
Person.in_batches.each_record do |person| person.do_awesome_stuff end Person.where("age > 21").in_batches(of: 10).each_record do |person| person.party_all_night! end
If you do not provide a block to #each_record, it will return an Enumerator for chaining with other methods:
Person.in_batches.each_record.with_index do |person, index| person.award_trophy(index + 1) end