質問編集履歴

8

質問内容の修正

2019/03/22 02:19

投稿

退会済みユーザー
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

質問内容の修正

2019/03/22 02:19

投稿

退会済みユーザー
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

質問内容の修正

2019/03/22 02:18

投稿

退会済みユーザー
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

質問内容の修正

2019/03/22 02:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -54,9 +54,13 @@
54
54
 
55
55
 
56
56
 
57
- Geoモデルにはテーブルはないので create を呼ぶことができず
57
+ Geoモデルにはテーブルはないので ActiveRecord ではなく ActiveModelオーバーライドするため
58
58
 
59
+ create でバリデーションを呼ぶことができず
60
+
61
+
62
+
59
- 親モデルの before_save の中で
63
+ 親モデルの before_save の中でバリデーションするしかないのですが
60
64
 
61
65
 
62
66
 

4

質問内容の修正

2019/03/22 02:14

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- カラムを別モデルにしてバリデーションしたい
1
+ バリデーション失敗を強制的に発生させる方法
test CHANGED
@@ -1,6 +1,14 @@
1
- 親モデルの1つのカラムに Rectangle Circle Polygon といっポリモーフィック位置情報を保存したのですが
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

質問内容の修正

2019/03/22 02:12

投稿

退会済みユーザー
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

質問内容の修正

2019/03/20 12:37

投稿

退会済みユーザー
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

質問内容の修正

2019/03/20 12:36

投稿

退会済みユーザー
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
  自分でもまだ整理しきれていなくて質問がわかりにくくてすみません