Ruby / Rails

Railsのモデル・migrationについて

2019年7月3日

こんにちは、Nanayakuです。

今回は、モデルとmigrationについて解説します。

目次

モデルとは

モデルとは、データ操作やアプリケーション固有の処理(ビジネスロジック)を行うファイルの集まりの事です。

MVCの流れで確認すると、データベースからデータの取得や保存をする役割があります。

 

データベースの確認

データベース(MySQL)を初めて聞いた人はこちらへ=>DBとはなんぞや・・・!?

データベースは、整理されたデータ(テーブル)の集合体です。

データの作成(Create)、読み取り(Read)、更新(Update)、削除(Deleate)の4つの機能があります。

それぞれの頭文字をとってCRUD(クラッド)処理と呼びます。

データベースは、データの共有・検索して利用する事を目的に作られました。

テーブル

基本的に1つのWebアプリケーションで、1つのデータベースを使います。

テーブルは、各要素のデータをまとめた表のようなものです。

データベースの中に、このテーブルがいくつもあります。

例えば、ユーザー情報ならUserテーブル、youtubeの動画データならVideoテーブルになります。

データベース

Userテーブル
カラム名 id name email
integer string string
Videoテーブル
カラム名 id titel video
integer string string

 

カラム

カラム(列)は、テーブルの各項目の事です。

名前やメースアドレスなどです。

また、カラムには型と言う概念があり、整数・文字列・時刻など、保存するデータにあった型を指定します。

参考

レコード

テーブルの各データの事です。

エクセルのシートで例えると、カラム(列)は縦、レコード(行)は横です。

同じデータを複数のレコードとして保存できません。

データの重複を避けるため、カラムにはプライマリキー(主にID)を設定します。

railsでは、テーブルを作成する時、自動でidと言うカラムを追加してくれます。

 

モデルの作成

railsでモデルを作成する時のコマンドは、以下の通りです。

rails g model モデル名

gはgenerateの略です。

Userモデルを作る場合は、以下のようになります。

rails g model User

Userモデルが作成されると、画像のようにdbのmigratesディレクトリにmigrationファイルが出来ます。

作成されたmigrationファイルの中身は↓の画像のようになっています。

 

migrationファイルとは

データベースを操作するには、データベースにログインし、SQLと呼ばれる言語と使わなければなりません。

この作業を簡単にするために、migrationファイルがあります。

migrationファイルを作成・編集し、Railsコマンドでデータベースに読み込ませる事で、データベース構造を作成することが出来ます。

簡単に言うと、「この構造でテーブルを作ってくれ」と依頼書を出す感じです。

migrationファイルの編集

changeと言うメソッドで、migrationファイルの作成や変更ができます。

create_tableはテーブルを作るためのメソッドです。

「t.string :name」について少し解説します。

「t.」は変数で、引数名がテーブルの名前になります。

t(引数名)がテーブルの名前になります。

「string」は型です。(数値や文字列などを指定)

「:name」の「:」はシンボルと言われ、この中に値(名前)を代入します。

 

migrationファイルの読み込み

以下のコマンドで、データベースにmigrationファイルを読み込ませることができます。

rails db:migrate

実行すると「schema.rb」ファイルが作成されます。

中身は以下のようになっています。

「created_at」と「updated_at」はtimestampの型で、データの作成・更新の時に自動的に時刻を保存します。

 

migrationファイルの状態を戻す

migrationファイルを変更してもう一度「rails db:migrate」を実行しても、テーブルの変更はできません。

migrationファイルを更新するには、「rails db:rollback」コマンドで、直前(1つ前)に読み込みを実行し作成したテーブルを削除します。

画像から、削除されたのがわかります。

もう1度「rails db:migrate」を実行します。

もう1度テーブルを作成できました。

 

まとめ

  1. 「rails g model モデル名」でmigrationディレクトリを作成
  2. 作成されたmigrationファイルを編集
  3. 「rails db:migrate」で、データベースにmigrationファイルを読み込む
  4. データベースにマイグレーションファイル通りのテーブルが作成される

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

-Ruby / Rails
-

© 2024 Nanayaku blog Powered by AFFINGER5