プログラミングの勉強日記
2020年8月2日 Progate Lv.226
has_manyとbelongs_toの使い分けに戸惑った。has_manyのときに複数形にするのを忘れてしまい、うまく実行されなかったので、has_manyとbelongs_toについてまとめる。
関連付け(アソシエーション)とは
2つのテーブルを関連付けさせること。テーブル間の関係をモデル上の関係として操作する仕組み。
テーブル同士の関係には「1:1」「1:多」「多:多」の3つの関係が存在する。今回は「1:1」「1:多」の関係を表すときに使うhas_manyとbelongs_toについてまとめる
今回は、UserテーブルのidをPostテーブルと関連付けをして、誰の投稿かわかるようする。
has_manyとは
has_manyは「1:多」の関連付けを表し、〇〇が複数の〇〇を所有しているという関係を表す時に使う。関連付けをすることによって、データをまとめて扱えるようになるので、より効率的にデータベースを操作することができる。
class User < ApplicationRecord
has_many :posts
end
has_manyを使うときは複数形にする
belongs_toとは
belongs_toは「1:1」の関連付けを表し、〇〇が◯◯に従属するという関係を表す時に使う。
class Post < ApplicationRecord
belongs_to :user
end
belongs_toを使うときは単数形にする