Open1

【Rails】Association

seiya2130seiya2130

Associationはモデル間のリレーションシップ(関連付け)を定義する
関連付けを定義すると、テーブルやレコード同士の関係を把握しやすくなり、データベースの整合性を保つ事ができる

user.rb
class User < ApplicationRecord
  # userがbank_accountのモデルを1つ有している(bank_accountがこのモデルへの参照を持っている)
  # userが削除されたらbank_accountも削除される
  has_one :bank_account, dependent: :destroy 
end
bank_account
class BankAccount < ApplicationRecord
  # userに従属する(userの外部キーを持つ)
  belongs_to :user 
end

userを削除したらbank_accountも削除される

検証

https://github.com/seiya2130/rails_practice/pull/7

参考

https://railsguides.jp/association_basics.html#has-one関連付け