複数データを新規作成したい

いままでのコード

@hoge=Hoge.new(params[:hoge])
if @hoge.save
 if 複数データの条件
  fuga=@hoge.dup
  #複数データの加工
  begin
   fuga.save!
  rescue ActiveRecord::RecordInvalid
   flash[:notice]="失敗した!"
   render :action=>:new
   return
  end
 end
else
 render :action=>:new
end

1件目の登録でモデルの検証を利用して、あとはコピー的なノリで何とかしている。
これが、パラメータが少ないと大丈夫なんだけど、多くなってくると失敗する。頭を抱える。

そんなときにactiverecord-importが良さそうと聞いたので試してみる。

activerecord-importをインストール

gemファイルに追記する。
app_root/Gemfile

gem 'activerecord-import'

コンソールでコマンド実行

$ bundle install
Installing activerecord-import (0.6.0)

ためす

@hoge=Hoge.new(params[:hoge])
if @hoge.save
 if 複数データの条件
  fuga=@hoge.dup
  #複数データの加工
  fugas=[]  
  #ループ始まり
  fugas << fuga
  #ループ終わり
  Hoge.import fugas
 end
else
 render :action=>:new
end