: O. Yuanying

Railsで複数モデルのインスタンスを作成する

623 :名無し募集中。。。:2006/10/19(木) 01:25:58 ID:???

>>622
殆どそれでいいと思う。

* トランザクション処理にした方がいい
* save!, create! で例外が発生する

あたりを加味して、エラー時処理はこんな感じでどうぞ。

def create
 @header = Header.new(params[:header])
 @line = Line.new(params[:line])
 Header.transaction do
  @header.save!
  @line.header = @header
  @line.save!
 end
 flash[:notice] = 'Order created.'
 render :action=>"list"
rescue
 render :action=>"new"
end

一つのコントローラのメソッド内で、複数のモデルのインスタンスを作成するときの例。