#pgid

** ルーティングで自由にURLを割あてる [#i584e5a8]
- URLのパスを自由に設定でき、URLのPathInfoの位置に指定した値をパラメータとして利用できる

 例)
 http://localhost:3000/
 http://localhost:3000/blog/date/2006/07/28


*** http://localhost:3000/ で自分が指定したControllerのActionを実行させたい [#l8c185bb]
- あらかじめやっておくこと
-- public/index.htmlを削除する~
↑これが優先されるので消しておく

- Blogというcontrollerを作る
 ruby script/generate controller Blog

-- Actionをセット
--- ↓こんな感じ app/controller/blog_controller.rb
 class BlogController < ApplicationController
   def view
   end
 end

-- Viewを作る
--- ↓こんなのをつくる app/views/blog/view.rhtml
 <html>
 <body>
 blog desu.
 </body>
 </html>

- WEBrickで見てみる
 ruby script/server

-- http:/localhost:3000/
--- Rootingがおかしいといわれる


- Rootingを設定する
-- ↓このように追加する config/routes.rb
    map.connect ':controller/:action/:id'
 --
 +  map.connect ':controller/:action/:id', :controller => 'Blog', :action => 'view'
    map.connect ':controller/:action/:id'

-- デフォルトで blog というコントローラーの、view というアクションを実行するようにした

- WEBrickで見てみる
-- http:/localhost:3000/
--- 表示された(*^^*)


*** http://localhost:3000/blog/date/2006/07/28 で自分が指定したControllerのActionを実行させたい [#c95fe90d]

- Rootingを設定する
-- config/routes.rb
 map.connect 'blog/date/:year/:month/:day', :controller => 'blog', :action => 'by_date'

- デフォルト値の設定も可能
-- config/routes.rb
 map.connect 'blog/date/:year/:month/:day', :controller => 'blog', :action => 'by_date',
   :month => nil, :day => nil

- 値のチェックも可能
-- config/routes.rb
 map.connect 'blog/date/:year/:month/:day', :controller => 'blog', :action => 'by_date',
   :requirements => {:year => /\d{4}/, :day => /\d{1,2}/, :month => /\d{1,2}/}

- ルーティングで設定した値はControllerで取得できる
-- ↓こんな感じ app/controller/blog_controller.rb
   def by_date
     render_text 'URLから指定した日時は…' + params[:year] +'/'+ params[:month] +'/'+ params['day']
   end

-- http://localhost:3000/blog/date/2006/07/28でアクセスすると…
--- 結果は↓こんな感じ
 URLから指定した日時は…2006/07/28


#blikifooter(竹村)

#comment


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

アークウェブのサービスやソリューションはこちら