結論
#create
の場合も#new 〜 #save
の場合も引数に配列を取ることができる#create
の場合` はまとめて*1 登録できる#new 〜 #save
の場合は、#new
で引数に配列を取った後に、each
で回して個別に#save
する
具体例
users
テーブルに 2つ のレコードを保存する例を考えてみます。
#create を用いる場合
User.create( [ { name: 'taro', age: 20 }, { name: 'hanako', age: 25 } ] )
#new 〜 #save を用いる場合
users = User.new( [ { name: 'taro', age: 20 }, { name: 'hanako', age: 25 } ] ) users.each do |user| user.save end
使い分け
使い分けは以下の記事に詳しいです。
参考
Bulk Insert をするための activerecord-import
という gem もあります。
*1:SQL ひとつで