質問編集履歴

2

追記

2017/05/03 19:52

投稿

PartyKids
PartyKids

スコア65

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

追記

2017/05/03 19:52

投稿

PartyKids
PartyKids

スコア65

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
+ 長文で申し訳ないですが、よろしくお願いいたします。