ActiveRecordのassociation
概要
ソースコード上での呼び出しを簡単にするためにActiveRecord上でのテーブル同士の関連付けを示すことが必要になる
レコードの作成、更新に伴うデータの一貫性を担保できる
関連付け
belongs_to
自分のテーブルに外部参照キー列を追加する
has_one
has_many
has_oneとbelongs_toの片方だけを使用した場合
/icons/point.iconbelongs_toとhas_oneを同時に定義した場合、DBの状態としては片方だけ定義した場合と同じ
どちらか一方の定義があればDB上での関連は成立する
どちらか一方だけを使っても、一対一の関係を表現することができるが制限が生まれる
Active Recordによる関連付けの自動的な取得や更新が機能しなくなる
inverse_ofを付与する必要がある場合
規約から外れたキー名で関連付けを行う時
activerecord側で関連を認識できなくなるからinverse_ofで明示する必要がある
:foreign_key
:through
参照