public
Description: Implements ActiveRecord::Base.each instance method
Home | Edit | New

Home

ActiveRecordEach

Context

If you have to do a migration with a lot of rows, you can’t do something like these

User.find(:all).each do { |u| ... }

because you load all the table in ruby memmory. Ruby-prof says that these is not good, so I do these.

Summary & Examples

ActiveRecordEach is a 5 minutes plugin that implements ActiveRecord::Base.each instance method.

It acepts any parameter that find accept except :limit

Now you can easily do

User.each (:conditions => “users.login LIKE ‘g%’) { |u| Notifier.deliver_report(u) }

Todo It could be interesting make somthing like these: bq. User.each (:step => 5) {|u| puts u.login}

And fetch 5 users per query

Installation

You have two methods:

  • If your rails app is managed by git
    git-submodule add   git://github.com/guillermo/active_record_each.git vendor/plugins/active_record_each
  • If doesn’t
     git-clone git://github.com/guillermo/active_record_each.git vendor/plugins/active_record_each

Josh Goebel & Guillermo Álvarez Fernández, released under the MIT license

Last edited by guillermo, Mon May 19 00:28:50 -0700 2008
Home | Edit | New
Versions: