URLとコントローラ・アクション、ビューの関係
Ruby on RailsでのURLとコントローラ(controller)・アクション(action)、ビュー(view)の関係は次のようになっています。
http://localhost:3000/【コントローラ名】/【アクション名】
アクセスされるファイル
コントローラ | app/controllers/【コントローラ名】_controller.rb |
---|---|
ビュー | app/views/【コントローラ名】/【アクション名】.html.erb |
─ app ├ controllers │└ 【コントローラ名】_controller.rb └ views └ 【コントローラ名】 └ 【アクション名】.html.erb
アクセスされるメソッド
class 【コントローラ名】Controller < ApplicationController def 【アクション名】 end end
http://localhost:3000/
─ public └ index.html
標準ではドキュメントルートのindex.htmlが呼ばれます。
ファイルの拡張子からわかるように、このファイルは静的なものになります。
動的にするには、このindex.htmlを削除するのですが、削除すると次のようなエラーが出ます。
Routing Error No route matches "/" with {:method=>:get}
コントローラ、ビューを通し動的にするにはconfig/routes.rbに次のように書き、ルートでのアクセスの場合の定義をする必要があります。
ActionController::Routing::Routes.draw do |map| map.root :controller => '【コントローラ名】', :action => '【アクション名】' ……… …… end
┬ app │├ controllers ││└ 【コントローラ名】_controller.rb │└ views │ └ 【コントローラ名】 │ └ 【アクション名】.html.erb └ config └ routes.rb
http://localhost:3000/【コントローラ名】/【アクション名】/【パラメータ】
Railsでは、GETクエリによって値を渡さなくても、スタティックなURLを偽装してパラメータを渡すことができます。
config/routes.rbは次のようになります。
ActionController::Routing::Routes.draw do |map| map.connect ':controller/:action/:id' end
このようにするとパラメータはコントローラ内で次のようにして受け取れます。
params[:id]
http://localhost:3000/【名前空間名】/【コントローラ名】/【アクション名】
Rails 2.0.2以降、map.resources に名前空間を付けることが可能です。 名前空間(namespace)を使用することでアプリ階層が整理しやすくなります。 具体的には、機能をディレクトリにまとめるということができます。
アクセスされるファイル
コントローラ | app/controllers/【名前空間名】/【コントローラ名】_controller.rb |
---|---|
ビュー | app/views/【名前空間名】/【コントローラ名】/【アクション名】.html.erb |
─ app ├ controllers │└ 【名前空間名】 │ └ 【コントローラ名】_controller.rb └ views └ 【名前空間名】 └ 【コントローラ名】 └ 【アクション名】.html.erb
アクセスされるメソッド
class 【名前空間名】::【コントローラ名】Controller < ApplicationController def 【アクション名】 end end
関連記事
- NetBeansでRuby on Railsを開発する
- WindowsでRuby on Railsサーバ構築 (WEBrick編)
- Ruby on Railsをクリックだけで起動する方法
- WindowsでRuby on Railsサーバ構築 (Mongrel編)
- db/seed.rbで初期データ投入 (rake db:seed)
- rakeのタスク一覧
- rake --helpとrake -Tの実行結果
- Ruby on Railsのマイグレーションの型とMySQLの型の対応表
- Ruby on Railsをバージョンを指定してインストールする方法
- WEBrick互換の軽量WebサーバMongrel
- EclipseでRuby on Rails開発環境を作る RadRails
- Ruby on Railsのインストールと起動
- ディレクトリ構成
- Ruby on Railsとは
スポンサーリンク