Controller(コントローラー)を使う (8/8)
作成:2012-01-16 08:20
更新:2012-02-16 15:06
更新:2012-02-16 15:06
■Controllerとマッピング
最後に、「なぜ、HelosControllerが/helosで公開されるのか」という秘密について触れておきましょう。
この秘密は、「config」フォルダの中に用意される「routes.rb」というファイルにあります。これを開くと、下のリスト欄にあるようなコードが記述されているのが分かるでしょう。ここにある以下の文が、helosコントローラーを作成した際に自動的に追加された文です。
では、このアドレスへのアクセスにより、HelosControllerのindexメソッドが呼び出されるようにする設定は? それは「ない」のです。ほら、「設定より規約」ですよ。指定した通りにクラスやメソッドを作成すれば、自動的に認識されるようになる、それがRails流です。ただし、作ったら勝手に使えるようになる、とするとセキュリティ上問題が発生する可能性もあるので、公開するアドレスはroutes.rbに明示的に記述するようにしているのでしょう。
もし、コマンドを使わずすべて自分で一からアプリを手作業で作りたい、という場合には、Controllerのファイルと、このroutes.rbへのアドレスの追記さえきちんと行えば、自分でControllerを作成し追加することができるようになります。Controller作成の基本としてしっかり頭に入れておきましょう。
この秘密は、「config」フォルダの中に用意される「routes.rb」というファイルにあります。これを開くと、下のリスト欄にあるようなコードが記述されているのが分かるでしょう。ここにある以下の文が、helosコントローラーを作成した際に自動的に追加された文です。
get "helos/index"これは、"helos/index" というアドレスへのGETによるアクセスを追加する、という意味を持ちます。「GET」というのは、HTTPのプロトコルで、Webページを取得する際のもっとも一般的な命令です。これで、このWebアプリケーションでは、○○/helo/indexというアドレスへのアクセスが許可されるようになります。
では、このアドレスへのアクセスにより、HelosControllerのindexメソッドが呼び出されるようにする設定は? それは「ない」のです。ほら、「設定より規約」ですよ。指定した通りにクラスやメソッドを作成すれば、自動的に認識されるようになる、それがRails流です。ただし、作ったら勝手に使えるようになる、とするとセキュリティ上問題が発生する可能性もあるので、公開するアドレスはroutes.rbに明示的に記述するようにしているのでしょう。
もし、コマンドを使わずすべて自分で一からアプリを手作業で作りたい、という場合には、Controllerのファイルと、このroutes.rbへのアドレスの追記さえきちんと行えば、自分でControllerを作成し追加することができるようになります。Controller作成の基本としてしっかり頭に入れておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
プロジェクト名::Application.routes.draw do get "helos/index" # ずらっとコメントで説明が書いてあります # ……略…… end
※関連コンテンツ