LoginSignup
0
0

More than 1 year has passed since last update.

Modelとデータベース作成の手順解説についてのメモ

Posted at

RubyonRails5速習実践ガイドの本を参考しました。

モデルとマイグレーションファイルの作成

モデルとマイグレーションファイルを作成する。

bin/rails g model モデル名 属性:データ型 name:string

上記のコマンドでモデルクラスを定義したファイルと、データ構造を定義したマイグレーションファイルが作られる。

generatorで指定するモデル名は頭文字が大文字の単数形で指定します。
なぜかというとrailsのモデルとデータベースには二つの命名規則がある。

1.データベースのテーブル名はモデルのクラス名を複数形にしたもの。
2.モデルのクラス名はキャメルケース、テーブル名はスネークケース。

マイグレーションファイルの中身を見てみる

自動で作られたマイグレーションファイルはこんな感じ↓

class Create複数形のテーブル名 < ActiveRecord::Migration[5.2]
  def change
    create_table :小文字のテーブル名 do |t|
      t.データ型 :カラム名
      t.string :name

      t.timestamps
    end
  end
end

ちゃんとgeneratorで指定したモデル名の複数形がテーブル名にはず。。。

modelのファイルを見る

モデルの定義したファイルには

class モデル名(例Task) < ApplicationRecord
end

こんな感じで作成されています。
ここにいろんなコードを書くことでデータを登録する前にチェックしてくれます。

マイグレーションファイルをデータベースに適用する

モデルを扱うにはそれに対応したデータのテーブルが必要なんですが、このままではまだテーブルは作成されていません。
マイグレーションファイルに書かれたテーブルを作成するには下記のコマンドを使います↓

$ bin/rails db:migrate

これを行うとマイグレーションファイルに書かれた定義をもとにテーブルの作成を行います。
(新しくマイグレーションファイルを作成してデータベースを変更したりもできます)

エラーが出ていなければ成功です。

schema.rbとマイグレーションファイルについて

無事に作成されるとschema.rbが作成され、そこに作成もしくは変更内容が記述されます。
そこを見ることで現在のデータベースの状態を確認できます。

この機能はテーブルを変更したり追加したりするとその履歴がschema.rbに記載されマイグレーションする前のバージョンを戻したり最新のデータベースのバージョンにすることができバージョン管理を簡単にしてくれます。

まとめ

これでmodelとマイグレーションファイルの作成は終わりです。
generatorで自動で二つを一気に作ってくれるのでめっちゃ便利!
1つ注意点としては
modelとデータベースのテーブルには命名規則がある
この点はしっかり確認してアプリを作ってかないといけない

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0