質問編集履歴
8
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
|
61
61
|
|
62
62
|
|
63
|
-
親モデルの before_save の中でバリデーション
|
63
|
+
親モデルの before_save の中でバリデーションしようと思ったのですが
|
64
64
|
|
65
65
|
before_save はバリデーションの後によばれるため
|
66
66
|
|
7
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -90,7 +90,7 @@
|
|
90
90
|
|
91
91
|
のように特定のカラムのバリデーションだけ、
|
92
92
|
|
93
|
-
|
93
|
+
active record ではないモデルに委ねるみたいなことはできるんでしょうか
|
94
94
|
|
95
95
|
|
96
96
|
|
6
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,6 +62,10 @@
|
|
62
62
|
|
63
63
|
親モデルの before_save の中でバリデーションするしかないのですが
|
64
64
|
|
65
|
+
before_save はバリデーションの後によばれるため
|
66
|
+
|
67
|
+
他のバリデーションの後に個別にチェックする必要があって
|
68
|
+
|
65
69
|
|
66
70
|
|
67
71
|
```
|
@@ -76,7 +80,7 @@
|
|
76
80
|
|
77
81
|
|
78
82
|
|
79
|
-
みたいにか
|
83
|
+
みたいにかきたいのですがバリデーションを失敗させるにはどうかけばいいんでしょうか
|
80
84
|
|
81
85
|
|
82
86
|
|
5
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,9 +54,13 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
Geoモデルにはテーブルはないので cr
|
57
|
+
Geoモデルにはテーブルはないので ActiveRecord ではなく ActiveModel をオーバーライドするため
|
58
58
|
|
59
|
+
create でバリデーションを呼ぶことができず
|
60
|
+
|
61
|
+
|
62
|
+
|
59
|
-
親モデルの before_save の中で
|
63
|
+
親モデルの before_save の中でバリデーションするしかないのですが
|
60
64
|
|
61
65
|
|
62
66
|
|
4
質問内容の修正
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
バリデーション失敗を強制的に発生させる方法
|
test
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
-
|
1
|
+
### やりたいこと
|
2
2
|
|
3
|
+
|
4
|
+
|
5
|
+
親モデルの1つのカラムに Rectangle Circle Polygon といったポリモーフィック位置情報を
|
6
|
+
|
7
|
+
入力はタイプに応じた小数入力でデータベースには JSON で保存したい
|
8
|
+
|
9
|
+
|
10
|
+
|
3
|
-
|
11
|
+
### ためしたこと
|
4
12
|
|
5
13
|
|
6
14
|
|
@@ -34,7 +42,13 @@
|
|
34
42
|
|
35
43
|
|
36
44
|
|
37
|
-
のような感じでGeoを継承した個別インスタンスを作
|
45
|
+
のような感じでGeoを継承した個別インスタンスを作っています
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
### 発生している問題
|
50
|
+
|
51
|
+
|
38
52
|
|
39
53
|
バリデーションをいつどうやって実行すればいいかがわかりません
|
40
54
|
|
@@ -50,7 +64,7 @@
|
|
50
64
|
|
51
65
|
if self.geo.invalid?
|
52
66
|
|
53
|
-
バリデーション失敗を投げる # この部分の書き方がわからない
|
67
|
+
`バリデーション失敗を投げる # この部分の書き方がわからない`
|
54
68
|
|
55
69
|
end
|
56
70
|
|
3
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -72,7 +72,9 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
|
75
|
+
|
76
|
+
|
75
|
-
保存処理をまだかいていないのですが
|
77
|
+
あと… 保存処理をまだかいていないのですが
|
76
78
|
|
77
79
|
カラム自体は String で JSON で保存しようと思っています
|
78
80
|
|
@@ -82,7 +84,7 @@
|
|
82
84
|
|
83
85
|
のようにかけば保存されるときだけモデルからJSON文字列になってくれるんでしょうか
|
84
86
|
|
85
|
-
|
87
|
+
|
86
88
|
|
87
89
|
|
88
90
|
|
2
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
def geo=(val)
|
28
28
|
|
29
|
-
@geo = Geo.generate(val)
|
29
|
+
@geo = Geo.generate(val) # Circle や Rectangle といったインスタンスができる
|
30
30
|
|
31
31
|
end
|
32
32
|
|
1
質問内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -72,4 +72,24 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
|
75
|
+
保存処理をまだかいていないのですが
|
76
|
+
|
77
|
+
カラム自体は String で JSON で保存しようと思っています
|
78
|
+
|
79
|
+
before_save で
|
80
|
+
|
81
|
+
`self.geo = self.geo.to_json`
|
82
|
+
|
83
|
+
のようにかけば保存されるときだけモデルからJSON文字列になってくれるんでしょうか
|
84
|
+
|
85
|
+
``
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
同じカラム名で Rails 上ではモデルで保存するときだけ JSON みたいにするのは
|
90
|
+
|
91
|
+
どこでどっちの状態になってるか混乱してしまって…
|
92
|
+
|
93
|
+
普通はこういうことはやらないのでしょうか
|
94
|
+
|
75
95
|
自分でもまだ整理しきれていなくて質問がわかりにくくてすみません
|