テーブルと一緒にreference型のカラムを作成する時
せっかくなのでこちらも書いておきます。
Rails 6.0.4
・前提条件
Genreテーブルがある。
・やりたいこと
Genreテーブルを紐づけた新しいテーブル(Movie)を用意したい
①credit_cardモデルを作成
$ rails g model Movie
②作られたmigrationファイルを開き、以下のように編集する。
class CreateMovies < ActiveRecord::Migration[5.2]
def change
create_table :movies do |t|
t.string :title, null: false
t.string :image, null: false
t.integer :released_year, null: false
t.references :genre, null: false, foreign_key: true
t.timestamps
end
end
end
t.references :genre, null: false, foreign_key: true
の foreign_key: true
が外部キーです。
マイグレーションの実行
$ rails db:migrate
すでに作られているテーブルにreference型のカラムを追加するとき
・前提条件
movieテーブルとgenreテーブルがある
・やりたいこと
Movieテーブルに genre_idを外部キーとして追加したい
マイグレーションファイルの生成
$ rails g migration AddReferencesToMovies
作られたmigrationファイルを開き、編集する。
class AddReferencesToMovies < ActiveRecord::Migration[5.2]
def change
add_reference :movies, :genre, null: false, foreign_key: true
end
end
ターミナル
$ rails db:migrate
(注意点)
テーブルと一緒にreference型のカラムを作成する時は、references
後からreference型のカラムを追加する時は、reference
で記述する。
参考:https://qiita.com/krile136/items/0e824a6fb1d657bd3f97
https://k-koh.hatenablog.com/entry/2020/03/13/100517