【1】はじめに
記事を作成した経緯
私は4月に進学した大学の課外活動で初めてプログラミング言語について学び始め、 Railsを使ってチーム開発をおこなっている。途中、 migrate をするにあたってステータスを down
から up
にする方法などをまとめて知ることができるページが存在しなかったため、作成を試みた。
目的
Railsに関する規則・構文について、自分と同じような悩みを持つ人が読みやすい資料として一括にまとめる。また各章末に、参考にした記事のURLを貼っておくので活用してほしい。
お願い
本記事内では、私が「詰まった」あるいは「必要」だと感じた内容を記載しており、内容の一部は「項4.参考サイト」にある記事を参考にしている。また、本記事内に記載のない内容についても同じくリンクしてあるので、もし不明なことがあれば参考先を確認することで解決できる場合がある。
【2】Railsにおける命名規則
命名規則の重要性
Railsのコントローラやモデルを rails generate
あるいは rails g
コマンドで生成する際にそれぞれ規則があるということを作成後に気が付いたため、特に注意したいところでもある。
コントローラ
単一単語の場合
名称 | 例 |
---|---|
コントローラ名 | contents |
コントローラクラス名 | ContentsController |
ファイル名 | contents_controller.rb |
複数単語の場合
名称 | 例 |
---|---|
コントローラ名 | stamp_point |
コントローラクラス名 | StampPointController |
ファイル名 | stamp_point_controller.rb |
モデル
単一単語の場合
名称 | 例 | 解説 |
---|---|---|
モデル名 | user | |
モデルクラス名 | User | 先頭大文字・単数形 |
ファイル名 | user.rb | 先頭小文字・単数形 |
テーブル名 | users | 先頭小文字・複数形 |
複数単語の場合
名称 | 例 | 解説 |
---|---|---|
モデル名 | cancel reason | |
モデルクラス名 | CancelReason | 先頭大文字・キャメル・単数形 |
ファイル名 | cancel_reason.rb | 先頭小文字・スネーク・単数形 |
テーブル名 | cancel_reasons | 先頭小文字・スネーク・複数形 |
generation構文(例)
rails g model [model name] [column name]:[type] [column name]:[type] ...
例)
myapp# rails g model Task title:string finish:date detail:string owner:string member:string
invoke active_record
create db/migrate/20240925145024_create_tasks.rb
create app/models/task.rb
【3】マイグレートの実行・修正
マイグレートを実行する
私は docker
を利用しているため、 docker compose exec rails bash
を実行することで rails コンテナの中に入って操作する。
この時、マイグレーションをする前には次のコードでマイグレートの状態を確認したほうがよい。
myapp# rails db:migrate:status
通常のマイグレート
【パターン1】
Status Migration ID Migration Name
--------------------------------------------------
up 20240925143128 Create users
down 20240925143643 Create admin departments
【パターン2】
Status Migration ID Migration Name
--------------------------------------------------
up 20240925143128 Create users
down 20240925143643 Create admin departments
down 20240925144846 Create plans
down 20240925145024 Create tasks
上記の 【パターン1】 や 【パターン2】 ですべてを up
状態にする場合、一般に以下のようにマイグレートする。
myapp# rails db:migrate
マイグレーションファイルを限定する
【パターン3】
Status Migration ID Migration Name
--------------------------------------------------
up 20240925143128 Create users
down 20240925143643 Create admin departments
down 20240925144846 Create plans
down 20240925145024 Create tasks
マイグレーションをする前にはマイグレートの状態を確認する必要がある。上記の 【パターン3】 において、特定のファイルを up
状態にする場合、一般に以下のようにマイグレートする。
myapp# rails db:migrate:up VERSION="[Migration ID]"
例)Create plans をマイグレートする場合
myapp# rails db:migrate:up VERSION="20240925144846"
マイグレーションの削除
初めに、対象ファイルの状態を確認するため、以下のコマンドを実行。(参考:項「マイグレートの実行」 )
myapp# rails db:migrate:status
すると、本ページのパターン1あるいは以下のようになっていると思われる。
Status Migration ID Migration Name
--------------------------------------------------
up 20240925143128 Create users
up 20240925143643 Create admin departments
up 20240925144846 Create plans
up 20240925145024 Create tasks
基本的には個別にマイグレーションを down
状態にさせる。また、対象のファイルが down
状態になっていなければ以下のようにダウンさせる。
myapp# rails db:migrate:down VERSION=[Migrate ID]
例)Create plans をダウンさせる場合
myapp# rails db:migrate:down VERSION=20240925144846
もう一度状態を確認し、 down
になっていれば最後に次のように削除する。
myapp# rm db/migrate/[対象のファイル名]
例)Create plans ファイルを削除する
myapp# rm db/migrate/20240925144846_create_plans.rb
また、ダウンさせる前に対象のファイルを削除した場合は、以下のページを参考にするとよい。
【4】参考サイト一覧
【Ⅰ】命名規則
- データ型
- 命名規則
- キャメル/スネークとは
- モデル・コントローラの削除(本ページ内では紹介していませんが、リンク先ではモデルの生成から削除までの一連の流れが紹介されています。)
【Ⅱ】マイグレート
#記事第1号