>>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

あと、":action=>list" になってるけど、タイポでなければ注意ね。
(list のメソッド呼び出しになってる)