※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
記事に「いいね」する
ユーザーがいて、記事がある
ユーザーと記事の間に「いいね」という関係性がある
usersテーブル ー likesテーブル ー articlesテーブル
likesテーブルはn対nの中間テーブルになる
Likesテーブルを作る
ターミナルで以下を実行する
rails g model Like
Likesテーブルはユーザーと記事の関係性をつなぐ中間テーブル
user_idとarticle_idのカラムが必要なので、:user、:articleと紐づけておく
null: false
- userがないのに「いいね」できない
- articleがないのに「いいね」できない
ターミナル画面で以下を実行する
rails db:migrate
「いいね」との関係を考える
- まず、usersテーブルとlikesテーブルだけの関係を考えてみる
- ユーザーは複数「いいね」するので、
has_many :likes
となる
app/models/user.rbに書き加える
has_many :likes, dependent: :destroy
- まず、articleテーブルとlikesテーブルだけの関係を考えてみる
- 記事は複数「いいね」されるので、
has_many :likes
となる
app/models/article.rbに書き加える
has_many :likes, dependent: :destroy
- ユーザーは複数「いいね」する
記事は複数「いいね」される - 「いいね」はユーザーと記事に所属しているので、
belongs_to
となる
app/models/like.rbに書き加える
class Like < ApplicationRecord
belongs_to :user
belongs_to :article
end
これでn対nのリレーションが完成する
#DAY25