2022/10/11(火) DB関連のまとめ

RailsにおけるDBとMigrationファイルModelの役割とその関係

  • どんなデータベースを作って欲しいかを指示するデータベースの設計図Migrationファイルです。
    • あるテーブルにこんなカラムが必要、そのカラムに対する型や制約を指示するもので、Migrationファイルを元にDBが作成されます。
  • Railsのmodelは、DBのテーブルに対応するRubyのクラスです。 テーブル内のデータがどんなもので、テーブル同士の関係がどうかというアソシエーション関係を定義できます。また、データベースとの間で情報のやり取り(データの取得・保存・検索)を行います。
  • モデルおよびモデル内のデータを表現する
  • モデル同士の関連付け(アソシエーション)を表現する
  • 関連付けられているモデル間の継承階層を表現する
  • データをデータベースで永続化する前にバリデーション(検証)を行なう
  • データベースをオブジェクト指向スタイルで操作する

Railsガイド

  • 実際にデータが表のように保管されている箱のようなものがデータベースです。
    • データベースとのやりとりを行うのは、モデルです。

RailsプロジェクトをAPIモードで作成する

  • --apiというオプションをつけるとAPIモードでRailsプロジェクトを作成できます。
$ rails new プロジェクト名 --api

APIモードとは?

Rails APIモードとは、API作成に特化したモードのことです。

APIモードではMVCのV(ビュー)が存在しないため、rails newを実行した際にビューに関するファイルやGemが生成されません。

また、通常のRailsアプリケーションではerbファイルをレスポンスとして返しますが、APIモードではJSONをレスポンスに返します。

【Rails】Rails5から追加された機能「APIモード」について初心者向けにまとめてみた

つまり、Reactなどを使って、非同期的にAPIから外部のデータを取得する場合、JSONデータをレスポンスとして返すRailsAPIモードを使います。

外部キーの役割

外部キーとはモデル間のリレーションを辿る際の基準となるキーのことです。外部キーを使って、テーブル間のアソシエーション関係を表すことが出来ます。あるテーブルに紐づいたデータを作成したいときに外部キーを使うと自動で紐づいたデータがDBに作成されます。

参考

Railsガイド

【Rails】Rails5から追加された機能「APIモード」について初心者向けにまとめてみた