チケットとユーザーテーブルの両方に行を作成する必要があります...トランザクションが失敗した場合の処理方法を知る必要があります。
@ticket.transaction do
@ticket.save!
@user.save!
end
#if (transaction succeeded)
#.....
#else (transaction failed)
#......
#end
余談ですが、デザイナーがより多くのプログラミングを学ぶのを助けるためにスタックオーバーフローに参加するすべての人に感謝したいと思います...皆さんがこのようなn00b質問に答えるためにあなたの一日を割いてくれたことに感謝します:)
保存を使用している場合! bang(感嘆符)を使用するメソッドでは、保存が失敗したときにアプリケーションが例外をスローします。失敗を処理するには、例外をキャッチする必要があります。
begin
@ticket.transaction do
@ticket.save!
@user.save!
end
#handle success here
rescue ActiveRecord::RecordInvalid => invalid
#handle failure here
end
私も初心者ですが、@ ticket.errorsと@ user.errorsをチェックして、その応答に応じて検証できると思います
また、saveメソッドは、保存が成功したかどうかを決定するブール値を返す必要があります