How to implement bulk insert in Rails 3

activerecord, arel, ruby-on-rails, ruby-on-rails-3

Solution

activerecord-import implements AR#import

activerecord-import is a library for bulk inserting data using ActiveRecord.

see how it works:

books = []
10.times do |i| 
  books << Book.new(:name => "book #{i}")
end
Book.import books

Project's home is on Github and it's wiki.

Problem

I need to insert a array of emails as different records into my contacts table. How can this be done. ``` Eg: @email = ["a@b.com", "c@d.com", "e@f.com", ... ] ``` I dont want to use. ``` @email.each do |email| @contact = Contact.new @contact.email = email @contact.save end ``` This cause n insert quires. I just need a single insert query to insert these values. How can this be done in rails 3.0.9 (and ideally MySQL). Please help

Original source

Related problems