- バックアップ一覧
- ソース を表示
- rails/第2回勉強会 - まとめ は削除されています。
- 1 (2006-07-28 (金) 20:59:55)
- 2 (2006-07-28 (金) 21:08:23)
ルーティング †
- URLのパスを自由に設定でき、URLのPathInfoの位置に指定した値をパラメータとして利用できる
例) http://localhost:3000/ http://localhost:3000/blog/date/2006/07/28
http://localhost:3000/ で自分が指定したControllerのActionを実行させたい †
- あらかじめやっておくこと
- public/index.htmlを削除する
↑これが優先されるので消しておく
- public/index.htmlを削除する
- Blogというcontrollerを作る
ruby script/generate controller Blog
- Actionをセット
- ↓こんな感じ app/controller/blog_controller.rb
class BlogController < ApplicationController def view end end
- ↓こんな感じ app/controller/blog_controller.rb
- Viewを作る
- ↓こんなのをつくる app/views/blog/view.rhtml
<html> <body> blog desu. </body> </html>
- ↓こんなのをつくる app/views/blog/view.rhtml
- 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'
- ↓このように追加する config/routes.rb
- デフォルトで blog というコントローラーの、view というアクションを実行するようにした
- WEBrickで見てみる
- http:/localhost:3000/
- 表示された(*^^*)
- http:/localhost:3000/
http://localhost:3000/blog/date/2006/07/28 で自分が指定したControllerのActionを実行させたい †
- Rootingを設定する
- config/routes.rb
map.connect 'blog/date/:year/:month/:day', :controller => 'blog', :action => 'by_date'
- config/routes.rb
- デフォルト値の設定も可能
- config/routes.rb
map.connect 'blog/date/:year/:month/:day', :controller => 'blog', :action => 'by_date', :month => nil, :day => nil
- config/routes.rb
- 値のチェックも可能
- 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}/}
- config/routes.rb
- ルーティングで設定した値はControllerで取得できる
- ↓こんな感じ app/controller/blog_controller.rb
def by_date render_text 'URLから指定した日時は…' + params[:year] +'/'+ params[:month] +'/'+ params['day'] end
- ↓こんな感じ app/controller/blog_controller.rb
- http://localhost:3000/blog/date/2006/07/28でアクセスすると…
- 結果は↓こんな感じ
URLから指定した日時は…2006/07/28
- 結果は↓こんな感じ