質問編集履歴
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -194,4 +194,26 @@
|
|
194
194
|
|
195
195
|
|
196
196
|
|
197
|
+
```ruby
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
has_many :active_relationships, class_name: "Relationship",
|
202
|
+
|
203
|
+
foreign_key: "follower_id",
|
204
|
+
|
205
|
+
dependent: :destroy
|
206
|
+
|
207
|
+
```
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
上記のコードで、『foreign_key: "follower_id"』っと記載しているのは、これを書かなかったら、active_relationshipsテーブルの主キーを外部IDと認識してしまうため、書いているのですか?
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
197
219
|
長文で申し訳ないですが、よろしくお願いいたします。
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -155,3 +155,43 @@
|
|
155
155
|
|
156
156
|
|
157
157
|
質問するにあたって、まとめて整理してみましたが、やっぱり意味が分からず、支離滅裂な質問文になってしまいましたが、よろしくお願いいたします。
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
###追記
|
162
|
+
|
163
|
+
モデルAとモデルBがあり、テーブルAの情報をテーブルBに組み込みたいと仮定する(1対多)。
|
164
|
+
|
165
|
+
この時の主キーは、テーブルAのID(一意)であり、モデルBにあるa_idが外部キーとなる。
|
166
|
+
|
167
|
+
```ruby
|
168
|
+
|
169
|
+
###a.rb
|
170
|
+
|
171
|
+
has_many :b
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
###b.rb
|
178
|
+
|
179
|
+
belongs_to :a
|
180
|
+
|
181
|
+
```
|
182
|
+
|
183
|
+
a,bは、モデル自身が見るべきモデルクラスを示唆しているだけで、外部キーや主キーの情報ではない。
|
184
|
+
|
185
|
+
a.rbは、has_many: b の **b** から、model class B を見て、自身のモデルクラス_IDがあることを知り、a→bのモデルが結合する。
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
逆に、b.rbは、belongs_to :a の **a** から、model class a を見て、自身のモデルクラス_IDがないため、aの主キーをベースに、b→aのモデルが結合する。
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
って事ですか?
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
長文で申し訳ないですが、よろしくお願いいたします。
|