- 追加された行はこの色です。
- 削除された行はこの色です。
** ルーティング [#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