LoginSignup
1
1

【Rails】ネーミングのお作法:MVC編

Last updated at Posted at 2023-09-29

はじめに

Railsでの一般的な命名規則について説明していきます。

表記法

  • キャメルケース
    • アッパー
    • ロウワー
  • スネークケース
  • コンスタントケース
  • ケバブケース
  • M (Model) → 単数形
  • V (View) → 複数形
  • C (Controller) → 複数形

キャメルケース

キャメル(camel)はラクダのことで、コブに見立てて単語ごとの頭文字を大文字で表記します。
全体の先頭の文字は、大文字の場合と小文字の場合とがある。

アッパーキャメルケース

主にクラス名、モジュール名で使用され
先頭が大文字のキャメルケースで表記します。

admin_user.rb
# 例
class AdminUser
end

ロウワーキャメルケース

主にJavaScriptの変数名などで使用され
先頭が小文字のキャメルケースで表記します。

.js
// 例
const helloWorld = "ハローワールド";
console.log(helloWorld);
...

スネークケース

主に変数名、ファイル名で使用され
単語の区切りを_アンダースコアで表記します。

users_controller.rb
# 例
class UsersController

    def set_user
    ...
    end

    def user_params
    ...
    end
end

コンスタントケース

変更しない定数などを表現する際に使用され、
全て大文字のスネークケースで表記します。

.rb
TAX_RATE = 0.1

ケバブケース

主にHTMLのクラス名などで使用されるケバブケース。
棒に刺さった肉の様に単語の区切りを-ハイフンでで表記します。

.haml
.box
  .box-header.with-border
    %h3.box-title= "タイトル"

MVC(Model-View-Controller)の命名

MVCアーキテクチャは、アプリケーションのコードを3つの主要なコンポーネントに分割します。
それぞれの命名規則を解説します。

Model (モデル)

モデルは単数形キャメルケースの名前を使用します。
テーブル名は複数形でなければなりません。
そしてモデルクラスのファイル名は単数形スネークケースを使用します。

アイテム 名称 命名規則
モデル名 admin_user 単数形・小文字・スネークケース
テーブル名 admin_users 複数形・小文字・スネークケース
クラス名 AdminUser 単数形・先頭大文字・キャメルケース
ファイル名 admin_user.rb 単数形・小文字・スネークケース

View (ビュー)

ビューのテンプレートファイルはコントローラ名と対応するディレクトリ内に保存されます。

  • ビューファイルの名前はアクション名に対応し、スネークケースを使用します。
    例:app/views/admin_users/index.html.haml
  • パーシャルビュー(再利用可能な部分ビュー)はアンダースコアで始まることが一般的です。
    例:app/views/admin_users/_form.html.haml

ルーティング(Routes)

ルーティングではRESTfulなルーティングを使用し、リソース名を複数形で表現します。

.rb
resources :admin_users

Controller (コントローラー)

複数のアクションを管理するコントローラは複数形の名前を使用します。
コントローラクラスのファイル名も複数形スネークケースを使用します。

アイテム 名称 命名規則
コントローラー名 admin_users 複数形・小文字・スネークケース
クラス名 AdminUsersController 複数形・先頭大文字・キャメルケース
ファイル名 admin_users_controller.rb 複数形・小文字・スネークケース

さいごに

今回はMVCの命名についてお話しました。
次回はメソッド名や変数名などのネーミングについて書こうかと思います。

1
1
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
1
1