回答編集履歴

1

トランザクションに関して記載を修正

2021/06/07 07:10

投稿

mingos
mingos

スコア4207

test CHANGED
@@ -12,15 +12,21 @@
12
12
 
13
13
 
14
14
 
15
- トランザクションはDBに関する話なので、メールを送るだけならトランザクションである必要はありませんが、処理の順番が正しければトランザクション内で良いです
15
+ トランザクションはDBに関する話なので、メールを送るだけならトランザクションである必要はありません。
16
16
 
17
- 例えば、メール関しはロールバックできませんで、保存成功た後送信処理を書く必要があります。
17
+ もちろんトランザクション内書いも処理順番ければ意図通り動きます。
18
18
 
19
19
 
20
20
 
21
- 今回はcreate!(), update!()の後に書いているので、
21
+ 今回提示されているコードに関してはcreate!(), update!()の後にメール送信を書いているので、
22
22
 
23
- 成功した時しかメール送信処理に来ないのでこのままで良いいま
23
+ 成功した時しかメール送信処理に来ないため、保存に失敗したにメールが飛ぶといった事はありせん
24
+
25
+ (ビックリマーク付きのメソッドを使っているため、保存に失敗したら例外が発生するため)
26
+
27
+
28
+
29
+ でも、明確にトランザクションとメール送信は分けたほうがコードとしては分かりやすいです。
24
30
 
25
31
 
26
32