2022/10/11(火) DB関連のまとめ
RailsにおけるDBとMigrationファイルModelの役割とその関係
- どんなデータベースを作って欲しいかを指示するデータベースの設計図が
Migrationファイル
です。- あるテーブルにこんなカラムが必要、そのカラムに対する型や制約を指示するもので、Migrationファイルを元にDBが作成されます。
- Railsのmodelは、DBのテーブルに対応するRubyのクラスです。 テーブル内のデータがどんなもので、テーブル同士の関係がどうかというアソシエーション関係を定義できます。また、データベースとの間で情報のやり取り(データの取得・保存・検索)を行います。
- モデルおよびモデル内のデータを表現する
- モデル同士の関連付け(アソシエーション)を表現する
- 関連付けられているモデル間の継承階層を表現する
- データをデータベースで永続化する前にバリデーション(検証)を行なう
- データベースをオブジェクト指向スタイルで操作する
- 実際にデータが表のように保管されている箱のようなものが
データベース
です。- データベースとのやりとりを行うのは、モデルです。
RailsプロジェクトをAPIモードで作成する
$ rails new プロジェクト名 --api
APIモードとは?
Rails APIモードとは、API作成に特化したモードのことです。
APIモードではMVCのV(ビュー)が存在しないため、rails newを実行した際にビューに関するファイルやGemが生成されません。
また、通常のRailsアプリケーションではerbファイルをレスポンスとして返しますが、APIモードではJSONをレスポンスに返します。
つまり、Reactなどを使って、非同期的にAPIから外部のデータを取得する場合、JSONデータをレスポンスとして返すRailsのAPIモードを使います。
外部キーの役割
外部キーとはモデル間のリレーションを辿る際の基準となるキーのことです。外部キーを使って、テーブル間のアソシエーション関係を表すことが出来ます。あるテーブルに紐づいたデータを作成したいときに外部キーを使うと自動で紐づいたデータがDBに作成されます。