回答編集履歴
1
トランザクションに関して記載を修正
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
|
|