コントローラの作成と命名規則(命名規約)
Rails アプリケーションを作成する上でコントローラの作成方法について解説いたします。また合わせてコントローラの名前をどのように付けるべきかについて命名規則についても解説いたします。
(Last modified: )
コントローラーを作成する
Rails のアプリケーションで、コントローラーを作成するには、次のコマンドを実行してください。
rails generate controller コントローラ名
必要となるファイルが自動的に作成されます。
では実際に試してみます。最初に Rails のアプリケーションを作成します。アプリケーションの名前は sample としました。コマンドプロンプトを起動したあと、アプリケーションを配置するディレクトリへ移動してください。そして次のように実行してください。(実際には、自分の環境には Git が入っていないので -G オプションを付けて実行しています)。
rails new sample
アプリケーションが作成されました。
続いてコントローラを作成します。今回は titles というコントローラを作成します。先程作成したアプリケーションのルートディレクトリに移動し、次のようにコマンドを実行して下さい。
rails generate controller titles
いくつか自動的にファイルが作成されていますが、その中の app/controllers/titles_controller.rb ファイルがコントローラーに関するファイルとなります。
作成されたファイルはテキストファイルです。テキストエディタでなどで先ほど作成された titles_controller.rb ファイルを開いてみます。
class TitlesController < ApplicationController end
ApplicationController クラスを継承したクラスが定義されています。クラス名は TitlesController のようにコントローラー名の先頭文字を大文字にした単語+Controllerとなっております。
コントローラーを作成することができました。
コントローラの命名規則
Rails では 1 つのモデルに対して 1 つのコントローラーを作成することが多く、この場合はコントローラー名としてモデル名を複数形にしたものに設定します。例えばモデル名が book ならコントローラー名は books です。またモデル名が addres ならコントローラー名は addresses です。
必ずそうしなければならないわけではありませんが、このルールに従って名前を設定することで一貫性を保つことができます。また複数のモデルを扱うようなコントローラーの場合は、この限りではありません。
またコントローラー名として単一の単語を使用する場合はすべて小文字で記述します。例えば books や addresses などです。複数の単語を組み合わせた名前を使用する場合はスネークケースと呼ばれる方法で記述します。例えば my_files や top_values です。
クラス名とファイル名
次にコントローラー名とクラス名およびファイル名の関係についてです。次の例を見て下さい。
名称 | 例 |
---|---|
コントローラ名 | items |
コントローラクラス名 | ItemsController |
ファイル名 | items_controller.rb |
コントローラー名として例えば items とした場合、コントローラークラス名は先頭文字を大文字にしたキャメルケースの形式で ItemsControlloer となります。またファイル名はスネークケースの形式で items_controlloer.rb となります。
このページの最初でコントローラー名として titles を指定し次のようにコントローラーを作成しました。
rails generate controller titles
ファイルとして app/controllers/titles_controller.rb が作成され、そのファイルの中身をテキストエディタで開いてみると次のように記述されていました。
class TitlesController < ApplicationController end
このように rails コマンドを使ってコントローラーを作成する場合、先ほどの命名規則に従った形でファイル名やクラス名が決められます。
コントローラーを rails コマンドで作成する場合は自動でこのようになりますが、もしすべて手動で作成する場合もこの命名規則に沿った形でクラス名やファイル名を作成されるようにしてください。
複数の単語を組み合わせた名前の場合
また複数の単語を組みあせた名前をコントローラー名として指定した場合です。次の例を見て下さい。
名称 | 例 |
---|---|
コントローラ名 | my_books |
コントローラクラス名 | MyBooksController |
ファイル名 | my_books_controller.rb |
コントローラー名として例えば my_books とした場合、コントローラークラス名は先頭文字を大文字にしたキャメルケースの形式で MyBooksControlloer となります。またファイル名はスネークケースの形式で my_books_controlloer.rb となります。
こちらは実際に試してみます。コマンドプロンプトを起動し、アプリケーションディレクトリに移動したあとで、次のようにコマンドを実行してください。
rails generate controller my_books
いくつか自動的にファイルが作成されていますが、その中の app/controllers/my_books_controller.rb ファイルがコントローラーに関するファイルとなります。
作成されたファイルはテキストファイルです。テキストエディタでなどで先ほど作成された titles_controller.rb ファイルを開いてみます。
class MyBooksController < ApplicationController end
ApplicationController クラスを継承したクラスが定義されています。クラス名は MyBooksController のようにコントローラー名をキャメルケースの形式にしたものになっていることが分かります。
-- --
Rails におけるコントローラの作成方法、およびコントローラーの名前に関する命名規則について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。