質問編集履歴
1
誤字や文法の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
バリデーションのonオプションをupdate内でうまく発動したい。
|
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
validatesメソッドのonオプションの発動タイミングで悩んでいます。
|
2
2
|
|
3
3
|
|
4
4
|
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
package.rb
|
8
8
|
|
9
|
-
|
9
|
+
d
|
10
10
|
|
11
11
|
validates :haitatsu_kiboubi, presence: true, on: :step20
|
12
12
|
|
@@ -32,19 +32,21 @@
|
|
32
32
|
|
33
33
|
flash[:success] = "更新されました。"
|
34
34
|
|
35
|
-
redirect_to root_path
|
35
|
+
redirect_to root_path
|
36
36
|
|
37
37
|
else
|
38
38
|
|
39
39
|
render "edit"
|
40
40
|
|
41
|
-
end
|
41
|
+
endd
|
42
42
|
|
43
43
|
end
|
44
44
|
|
45
45
|
```
|
46
46
|
|
47
|
-
と記述すれば、haitatsu_kiboubiが入
|
47
|
+
と記述すれば、入力フォームにhaitatsu_kiboubiの値が入っていれば更新されると思っていました。
|
48
|
+
|
49
|
+
が、実際は値なしと判断されて、editに差し戻されます。
|
48
50
|
|
49
51
|
|
50
52
|
|
@@ -62,7 +64,7 @@
|
|
62
64
|
|
63
65
|
```
|
64
66
|
|
65
|
-
と記述すると、バリデーション
|
67
|
+
と記述すると、バリデーションは効くのですが、先にupdateが働いてしまい、バリデーション対象外の項目はDBで更新されてしまいます。
|
66
68
|
|
67
69
|
|
68
70
|
|
@@ -78,4 +80,8 @@
|
|
78
80
|
|
79
81
|
```
|
80
82
|
|
83
|
+
と記述すれば、問題ないのはわかっているのですが、update内で条件によってバリデーション対象を切り替えたいため、上記のような書き方をしています。
|
84
|
+
|
85
|
+
|
86
|
+
|
81
|
-
|
87
|
+
書き方を修正すれば動くのか、別のアプローチを取った方がいいのか、お教え下さい。
|