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