06/10/19 21:26:30
>>623
ありがとうございます。頂いたアドバイスをもとに、最終的に次のようなコードにしました。
def create
@header = Header.new(params[:header])
@line = Line.new(params[:line])
# データを検証
is_valid = true
is_valid = false unless @header.valid?
is_valid = false unless @line.valid?
unless is_valid
render :action=>'new'
return
end
# データを保存
Header.transaction do
@header.save!
@line.header = @header
@line.save!
end
flash[:notice] = 'Order created.'
render :action=>"list"
rescue ActionRecord::RecordNotSaved => ex
render :action=>"new"
end
データを保存するまえに検証しておかないと、例えばヘッダーに間違いがあった場合、
明細のほうが検証されないので、ヘッダーのエラーメッセージしか表示されませんでした。