edge_rails

Edge rails: ActiveRecord::Base.each and ActiveRecord::Base.find_in_batches for batch processing

You guys must faced a situation when you need to process large number of records, for example sending newsletters. Then you must have done some sort of batch processing to save it eating up all of your memory. This feature is committed to rails core by DHH.

Now you can do something like User.each and User.find_in_batches.

Please refer here for more details.

Generating association while generating model

May be you guys are already aware of, but in Rails 2.2 we can specify belongs_to association while generating model. So if we issue:

script/generate model Post title:string author:belongs_to

We will get a Post model like:

class Post < ActiveRecord::Base
  belongs_to :author
end

Also it will automatically add the foreign key column in the migration.

class CreatePosts < ActiveRecord::Migration
  def self.up
    create_table :posts do |t|
      t.string :title
      t.belongs_to :author

      t.timestamps
    end
  end

  def self.down
    drop_table :posts
  end
end

Nothing much but saves some keystrokes. :-)

Ever tried Rails.root

Guys, have you ever tried Rails.root. It gives same value as RAILS_ROOT. But now in edge rails it is modified and you can do much more with it.

You can use Rails.root at places like:

 File.join(RAILS_ROOT, 'public', 'images')

as

 Rails.root.join('public', 'images')

Both gives the same result.

Enjoy…

Edge Rails: Now define your plugin’s routes in plugin’s config/routes.rb

If you wrote/writing a rails plugin that need to have an entry in rails routing, you need not to ask your plugin users to make that entry in RAILS_ROOT/config/routes.rb manually any more. In the latest version of rails you can add your custum routes in your plugin config/routes.rb file. Rails will automatically load those routes.