ruby on railsで親テーブルと子テーブルと孫テーブルにデータをsaveするときのトランザクションについて教えてください
#いまやっているコード
ruby
1def self.test(date) 2 oya = Oya.new 3 oya.date = date 4 # オートインクリメントでoyaにIDが付与される 5 oya.save! 6 7 # 子供の外部キーに親のIDを入れる 8 kodomo = oya.kodomo.build(oya_id: oya.id) 9 kodomo.save! 10 # 孫の外部キーに子供のIDを入れる 11 mago = kodomo.mago(kodomo_id: kodomo.id) 12 mago.save!
上記のコードで親と子と孫にデータが入るまでは確認できました。
#やりたいこと
親または子または孫がsaveに失敗したら3つのテーブルのsaveをロールバックさせたいです
1つのテーブルに対してのロールバックの記事は見つかりましたが、親と子の記事がなかなか見つからず、こうすればできるとあれば教えてほしいです。
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/25 10:01