複数データを新規作成したい
いままでのコード
@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