views:

23

answers:

1

My example datamapper class

class Simple
  include DataMapper::Resource
  property  :id, Serial
  property  :uid, Integer
end

And I have an array id uid's I would like to add.

items=[1,2,3,4,5,6,7,8,9,1,1,1,2,2,2,3]

If I wanted to search for any of the id's in the array I would do something like

Simple.all(:uid.in=>items) 

Is there a way to do the same for creating multiple records such as:

Simple.create(:uid=>items) #this doesn't work by the way

A way around this is:

items.each{|item|Simplel.create(:uid=>item)} 

But this can't be efficient,there has to be a better way.

+1  A: 

There's no easier way in DataMapper. Most ORMs don't bother with bulk operations because they often require database-specific implementations. One of the few ORMs that does is SQLAlchemy: http://www.sqlalchemy.org/docs/05/sqlexpression.html#executing-multiple-statements

jhickner
Much appreciated.
Dublinclontarf