Controller(コントローラー)を使う (3/8)
作成:2012-01-16 08:08
更新:2012-02-16 15:01
更新:2012-02-16 15:01
■「helos」コントローラーを作ろう
では、実際に作成しましょう。ここでは「helos」というControllerに「index」アクションを1つだけ用意してみることにします。
Aptana Studioを使っているならば、ウインドウ右下にあるプロジェクト名のターミナルビューから下のようにコマンドを実行してください。コマンドプロンプトなどで直接実行する場合は、Railsアプリのディレクトリ内に移動して同様に実行してください。
■作成されるファイル類
コマンドを実行すると、ControllerとView用のファイル類が自動的に作成されます。作成されるファイル類は、実はけっこうたくさんあります。整理しましょう。
controllers/helos_controller.rb
これがControllerのソースコードファイルです。とりあえず今回はこれだけ使います。
views/hellos/index.html.erb
これは、作成したhelosのView関連ファイルです。Viewは、Controller名のフォルダ内に、各アクションごとに表示するページのテンプレートファイルを用意します。今回は、indexアクションのテンプレートだけが作成されます。
helpers/helos_helper.rb
これは「ヘルパー」と呼ばれるものです。ヘルパーというのは、Viewで利用できるユーティリティ的なスクリプトです。これはまだ使いません。
test/functional/helos_controller_test.rb
test/unit/helpers/helos_helper_test.rb
テスト用のプログラムです。ユニットテストと呼ばれるテストのためのスクリプトが作成されます。これらもまだ使う予定はありません。
rails generate controllerコマンドは、このように正確には「ControllerとViewのファイルを作成するツール」といえます。ここではControllerしか使いませんが、普通はViewのテンプレートとあわせてページの作成を行うのが基本ですし、ヘルパーやユニットテストといったものもいずれ必要となるなら最初から用意しておいたほうが便利、ともいえるでしょう。
※本当に必要なのは?
たくさんのファイルが一度に作成されるため、「Controllerを使うにはこんなにいろいろ作ってやらないといけないのか」と思ってしまうかも知れませんが、これは「今後、必要になるものをまとめて作っている」ためであって、実はこれらすべてがないとControllerが動かないわけではありません。
Controllerとして必要なのは、「controllers」フォルダに作成される「〇〇_controller.rb」というスクリプトファイルだけです。それ以外のものは、Controllerを作成する上で必要というわけではありません(View関連は、使わないようにCntrollerのメソッドを書かないとエラーになりますが、Controllerを使う上で必須というわけではありません)。
この先、コマンドを使わず、手作業でファイルを用意する必要に迫られることもあるでしょう(オンラインIDEを使った開発などでは、コマンドが利用できないケースが大半です)。こうした場合には、「controllers」に「〇〇_controller.rb」というファイルを用意し、そこにControllerクラスを定義すれば、Controllerそのものは使えるようになります。他のファイルはとりあえず不要です。(ただし、実際の利用には、後で説明する「マッピング」の設定が必要になります)
Aptana Studioを使っているならば、ウインドウ右下にあるプロジェクト名のターミナルビューから下のようにコマンドを実行してください。コマンドプロンプトなどで直接実行する場合は、Railsアプリのディレクトリ内に移動して同様に実行してください。
rails generate controller helos indexこれで、heloコントローラーとindexアクションに関連するファイル類がすべて自動的に作成されます。非常に簡単ですね!
■作成されるファイル類
コマンドを実行すると、ControllerとView用のファイル類が自動的に作成されます。作成されるファイル類は、実はけっこうたくさんあります。整理しましょう。
controllers/helos_controller.rb
これがControllerのソースコードファイルです。とりあえず今回はこれだけ使います。
views/hellos/index.html.erb
これは、作成したhelosのView関連ファイルです。Viewは、Controller名のフォルダ内に、各アクションごとに表示するページのテンプレートファイルを用意します。今回は、indexアクションのテンプレートだけが作成されます。
helpers/helos_helper.rb
これは「ヘルパー」と呼ばれるものです。ヘルパーというのは、Viewで利用できるユーティリティ的なスクリプトです。これはまだ使いません。
test/functional/helos_controller_test.rb
test/unit/helpers/helos_helper_test.rb
テスト用のプログラムです。ユニットテストと呼ばれるテストのためのスクリプトが作成されます。これらもまだ使う予定はありません。
rails generate controllerコマンドは、このように正確には「ControllerとViewのファイルを作成するツール」といえます。ここではControllerしか使いませんが、普通はViewのテンプレートとあわせてページの作成を行うのが基本ですし、ヘルパーやユニットテストといったものもいずれ必要となるなら最初から用意しておいたほうが便利、ともいえるでしょう。
※本当に必要なのは?
たくさんのファイルが一度に作成されるため、「Controllerを使うにはこんなにいろいろ作ってやらないといけないのか」と思ってしまうかも知れませんが、これは「今後、必要になるものをまとめて作っている」ためであって、実はこれらすべてがないとControllerが動かないわけではありません。
Controllerとして必要なのは、「controllers」フォルダに作成される「〇〇_controller.rb」というスクリプトファイルだけです。それ以外のものは、Controllerを作成する上で必要というわけではありません(View関連は、使わないようにCntrollerのメソッドを書かないとエラーになりますが、Controllerを使う上で必須というわけではありません)。
この先、コマンドを使わず、手作業でファイルを用意する必要に迫られることもあるでしょう(オンラインIDEを使った開発などでは、コマンドが利用できないケースが大半です)。こうした場合には、「controllers」に「〇〇_controller.rb」というファイルを用意し、そこにControllerクラスを定義すれば、Controllerそのものは使えるようになります。他のファイルはとりあえず不要です。(ただし、実際の利用には、後で説明する「マッピング」の設定が必要になります)
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ