Retrieve AR objects from a query in batches
Ruby
Latest commit e86ae7c Nov 4, 2013 @telent Create LICENSE
Permalink
Failed to load latest commit information.
lib initial commit May 5, 2012
test initial commit May 5, 2012
.gitignore initial commit May 5, 2012
Gemfile initial commit May 5, 2012
LICENSE Create LICENSE Nov 4, 2013
README.md readme May 5, 2012
Rakefile initial commit May 5, 2012
ar-as-batches.gemspec initial commit May 5, 2012

README.md

ActiveRecord::Relation#as_batches

  Users.where(country_id: 44).as_batches(:batch_size=>200) do |user|
    user.party_all_night!
  end

ar-as-batches is what you (might) need if you were hoping #find_each would solve your problem and are disappointed to find that it doesn't.

Like #find_each it is intended for batch processing of large (or unknown) numbers of records that would require excessive memory if an object for each of the complete result set were created at once. It retrieves records from your relation in batches of 1000 (or as specified by the :batch_size option) and yields each record.

Unlike #find_each it honours order, limit and offset options on your query, so if you want records in reverse chronological order instead of ascending id order, and you want to start on page 2: you're welcome.