Tech campでRailsを学習していて、一番混乱するのは名前ではないでしょうか?
あるところでは、“tweet”
あるところでは、“tweets”
またあるところでは、“Tweet”
こんなの混乱するだけだろ?と思って、下手に名前を変えると変なところでリンク切れたりして…

そもそも、そんな名前つけたことねぇよ!何なんだよ!?スペルミスの方がまだかわいいわ!
と一人イライラしていたこともありました。
初心者あるあるではないでしょうか?
でもこれって実は、Railsさんが良かれと思って、勝手にやってくれていたことだったんです…。
ごめんね。Railsさん。
本記事は、Tech camp2周目あたりでMVCを理解している人を対象に、Railsの命名規則についてまとめました。

1周目はとにかく勢いで終わらせてください!
Railsの命名規則について

Railsには命名規則なるものがあり、Railsが勝手に予想して名前を作ってくれます。
もう少し詳しく書きますと、Railsの基本理念が8つあり、そのうちの1つがCoC(Convention over Configuration)というのがあります。
訳すと、「設定より規約」となります。
つまり、「規約作っておくから、開発に集中してくれよ」ということです。
そのため、Railsさんが知らないのは私が悪いと言わんばかりに、勝手に名前をつけてくれる、というわけです。

Railsの8つの規則は開発者の思想が伺えるので、読んでみるのもいいかもしれません。
参照元:https://postd.cc/rails-doctrine/
Railsの命名規則 ー モデル
まずはレッスンに従い、モデルを作成します。
対象となるレッスンはこちらです
“Rails[基礎] Lesson3 データを読み込めるようにしよう – データベースにテーブルを追加しよう”
$rails g model tweet
上記のコマンドでモデル名tweetを作成しました。
その結果、どんな名前が作られるでしょうか?下にまとめました。
名称 | 例 | 特徴 |
---|---|---|
モデル名 | tweet | 単数形 |
ファイル名 | tweet.rb | 単数形 |
モデルクラス名 | Tweet | 単数形・ 大文字 |
テーブル名 | tweets | 複数形 |
マイグレーションファイル名 | xxxxxxxxxxxxxx_ create_tweets.rb | 複数形 |

私はもう、モデル名は単数形。モデルクラス名だけは単数大文字と割り切りました。
テーブル名とマイグレーションファイル名は、データベース関連なので意識しなくても構いません。
Railsの命名規則 ー コントローラ
MVCのなかで、一番大事なのがコントローラ。
コントローラは、ユーザーからのリクエストを「モデル(M)」や「ビュー(V)」にも指示するので、忙しいんです。
そのため、名称も入り乱れます。
私が一番混乱するところです。
そんな司令塔とも呼ばれる、コントローラの命名規則をみていきましょう。
名称 | 例 | 特徴 |
---|---|---|
コントローラ名 | tweets | 複数形 |
ファイル名 | tweets_controller.rb | 複数形 |
コントローラクラス名 | TweetsController | 複数形・大文字 |

コントローラは単純に全部複数形と覚えました。
補足:インスタンス変数

命名規則について理解したけれども、疑問が残る人がいるかもしれません。

じゃあ、@tweetsって何なのかしら…?
この疑問に関しては、テキスト内で説明してあります。
“Rails[基礎] Lesson3 データを読み込めるようにしよう – ビューに表示できるようにしよう”の【インスタンス変数とローカル変数】についてご確認ください。
しかし、若干説明不足は否めませんので、下記に補足いたします。
インスタンス変数はクラス内で全メソッドで共通して使用することが出来ます。最初にどこかのメソッドで使用された時点でインスタンス変数は作成され、一度作成されたインスタンス変数は他のメソッドで値を取り出したり格納したりすることが出来るようになります。
”Let’sプログラミング / インスタンス変数” – https://www.javadrive.jp/ruby/class/index4.html

簡単にいうと、ローカル変数と違い、一度メソッドから抜けても他で使用できるよ、ということです。それが、「ビューへのデータの受け渡しができるよ」っていうことに繋がるわけです。
まとめ
Railsの命名規則を知らず、最初はRailsも理解ができませんでしたが、Railsさんが名前をつけてくれているということを知ると、少しだけRailsに歩み寄ることができたと思いました。
私がまず理解したのは、モデルは単数。コントローラーは複数。それだけでした。
その後、クラス名は大文字ということに気がつきました。
まずは1周目でMVCについて理解することを優先したほうがいいと考えますが、2周目に行く時、MVCのフロー図を見ながら名前について意識してみてください。
広告
テックキャンプ プログラミング教養 紹介者コード
テックキャンプ プログラミング教養へ入会検討されている方は、私の紹介者コードを入力すると、入会を決めた時に割引の恩恵が受けられます!

紹介者コードは、cTDoSyです。
・プログラミング教養…受講料から5%OFF
・エンジニア転職 … 10,000円分のAmazonギフト券(無料カウンセリング当日に申し込みをすると、受講料がさらに10,000円OFFになります)

私のメリットとしては、ほんの少しだけお小遣いがテックキャンプ さんからいただけます。
申し込み方法ですが、下記より無料体験にお申し込みください。
アフィリエイトリンクではありません!

実は、アフィリエイトリンクの方が、お小遣いの額は多いです!
でも、それだと体験入会する方のメリットには一切なりません。
Win−Winの関係であるならば、それが一番だと思い、通常の紹介者用のサイトを紹介しています。
\無料体験授業申し込みはこちら/

紹介者コードは、cTDoSyです。
この記事が参考になりましたら、当サイトよりお申し込みください。
よろしくお願いいたします。