instance method
batch_on_loaded_relation
Ruby on Rails 7.2.3
Since v7.1.6 PrivateSignature
batch_on_loaded_relation(relation:, start:, finish:, order:, batch_limit:)
No documentation comment.
Parameters
-
relationkeyreq -
startkeyreq -
finishkeyreq -
orderkeyreq -
batch_limitkeyreq
Source
# File activerecord/lib/active_record/relation/batches.rb, line 339
def batch_on_loaded_relation(relation:, start:, finish:, order:, batch_limit:)
records = relation.to_a
if start || finish
records = records.filter do |record|
id = record.id
if order == :asc
(start.nil? || id >= start) && (finish.nil? || id <= finish)
else
(start.nil? || id <= start) && (finish.nil? || id >= finish)
end
end
end
records.sort_by!(&:id)
if order == :desc
records.reverse!
end
records.each_slice(batch_limit) do |subrecords|
subrelation = relation.spawn
subrelation.load_records(subrecords)
yield subrelation
end
nil
end
Defined in activerecord/lib/active_record/relation/batches.rb line 339
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Batches