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とデータベースのテーブルには命名規則がある
この点はしっかり確認してアプリを作ってかないといけない