LoginSignup
2
5

More than 5 years have passed since last update.

modelの命名規則(Rails)

Posted at

モデルとは

データベースへのアクセスや、データのやり取りを担当しているファイル。

コントローラーがモデルを利用してデータを抽出し、それをビューに渡している。

テーブルとモデルの名前は決まっている

種類 概要 名前例
モデルクラス名 先頭は大文字、単数形 Tweet
モデルクラスのファイル名 先頭は小文字、単数形 tweet.rb
テーブル名 先頭は小文字、複数形 tweets

テーブルには多くのレコードが入っているから複数形?

モデルの作成には、

ターミナル
$ rails g model モデルクラス名(全て小文字)

を使用する。

打ちまちがえで作成したモデルを削除したいときは

ターミナル
  $ rails d model モデル名

で削除可能。

rails g modelコマンドでモデルファイルを作成すると、そのモデルに結びつくテーブルの設計図も一緒に生成されている。

いわゆるマイグレーションファイルが一緒に作成されている。
マイグレーションファイルは「実行」することでテーブルを作成する機能を持っている。

マイグレーションファイルとは

テーブルの設計図。作成したいテーブルに必要なカラムを記述することで、マイグレーションファイルを実行した際にその通りにテーブルが作成される。

主なカラムの型は、

説明 用例
integer 数字 ユーザーのidなど
string 文字(少なめ) ユーザー名、パスワードなど
text 文字(多め) 投稿文など
boolean 真か偽か 真偽フラグ
datetime 日付と時刻 作成日時、更新日時など

マイグレーションファイルの実行

マイグレーションファイルを「実行」するためのコマンドは、

ターミナル
$ rake db:migrate

マイグレーションを実行すると、スキーマファイルというファイルも作成される。
スキーマファイルは最新のマイグレーションファイルのバージョンが記録されているファイル。

rake db:migrateコマンドを実行すると、初めにschema_migrationsを参照し、実行されていないmigrationファイルがあるかどうか調べ、あればそれを実行する。
なので、rake db:migrateを複数回実行しても、同じmigrationファイルは再度実行されない。また、一度実行されたmigrationファイルの中身を変更してもそれは反映されない。

じゃあデータベースの中身を変えたい場合は?

migrationファイルの中の記述を間違えていて、自分の意図しないテーブルが作成されてしまった場合は、

qiita.rb
$ rake db:rollback

コマンドを使用する。このコマンドを使用することで、データベースの状態が最新のmigrationファイルを実行する前に戻る。

2
5
0

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
2
5