チャットルーム管理機能②

どうもバンバンです。
今回はRailsでユーザー管理機能を実装する方法を復習を
兼ねて 残していこうと思います。
ユーザ管理機能と一緒で全部書くと長くなるので何編かに
分けて投稿していきます。
 
はじめに
今回はDB中心になります。
中間テーブルの作成と各テーブルのアソシエーションの定義を実装していきます。
本当はもっともっと深いんでしょうが、今現在の私の技量で
できる範囲で書いていきます(・∀・)
 
用語集
 
アソシエーション
モデルを利用したテーブル同士の関連付けのこと
モデルに定義することで 紐づく別のモデルの情報へアクセスできる
 
 
中間テーブル
2つのテーブルの中間にあるテーブルのこと。
多対多の関係にある2つのテーブルの間に挟まって、2つの
組み合わせパターンだけをレコードとして保存する。

https://tech-master.s3.amazonaws.com/uploads/curriculums//72c6b9ec9559d54e8ce6338772c23b80.png

has_manyメソッド
1対多の関係があることを示すメソッド
ex)
一人のユーザーは複数のツイートをもつ
 
belongs_toメソッド
1対1の関係があることを示すメソッド
ex)
一つのツイートは一人のユーザーに所属している
 
foreign_key: true
テーブルの情報を参照する役割
 
手順
1中間テーブルを作成
userとroomは多対多の関係(アソシエーション)
情報が複雑化するので中間テーブルを作成する
ユーザーidとルームidの組み合わせが蓄積されていく
 
ターミナル
rails g model テーブル名_テーブル名
 
2中間テーブルのマイグレーションファイル編集
t.references :テーブル名, foreign_key: true
 
t.references :テーブル名, foreign_key: true
↑中間テーブルにはユーザーとチャットルームが必ず存在している
ことが前提なので、各テーブル情報foreign_keyで参照している
 
3ローカルサーバー再起動
 
4各テーブルのアソシエーションを記述
 
中間テーブルは多対多の間に挟まっている
中間テーブル視点・・・1対1=belongs_to
その他にテーブル・・元々多対多= has_many
 
おわりに
少し寝ぼけながら作成してので抜けがあったら
後々編集します