rails:routing
                差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| rails:routing [2008/11/25 07:56] – 外部編集 127.0.0.1 | rails:routing [2011/11/03 11:30] (現在) – [URLとメソッドを変える] nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ======  | + | ======  | 
| - | URLと対応する [[action_controller|ActionController]] の設定は '' | + | Railsでは、URLとActionControllerの関連付けの設定を '' | 
| ===== 現在のURL設定を見る ===== | ===== 現在のURL設定を見る ===== | ||
| 行 6: | 行 6: | ||
| $ rake routes | $ rake routes | ||
| - | ===== URL設定を書く ===== | + | ====== rails3 ====== | 
| - | '' | + | Rails2と比べて、より簡易な記述が可能になっている。 | 
| + | |||
| + | ===== リソース ===== | ||
| + | Rest指向のCRUD URLが作成される | ||
| + | <code ruby> | ||
| + | resource :models | ||
| + | </ | ||
| + | |||
| + | ==== resource とresources ==== | ||
| + | resourceは以下のアクションが作成される。ユーザから見て、このリソースに属するデータが単一である場合に使う。例えばシステム利用者が自分のユーザ情報を管理する場合、自分自身のユーザ情報以外は見える必要がないので、利用者から見ればユーザ情報は単一のリソースとみなせる。この場合はresourceを使う。 | ||
| + | |GET|show|/ | ||
| + | |GET|new|/ | ||
| + | |GET|edit|/ | ||
| + | |POST|create|/ | ||
| + | |PUT|update|/ | ||
| + | |DELETE|destroy|/ | ||
| + | |||
| + | resourcesは以下のアクションが作成される。ユーザから見て、このリソースに属するデータが複数がある場合に使う。例えば管理者が、利用者のユーザ情報全体を管理する必要がある場合、こちらを使う。 | ||
| + | |GET|index|/ | ||
| + | |GET|new|/ | ||
| + | |GET|edit|/ | ||
| + | |GET|show|/ | ||
| + | |POST|create|/ | ||
| + | |PUT|update|/ | ||
| + | |DELETE|destroy|/ | ||
| + | |||
| + | ==== リソース操作メソッドを減らす ==== | ||
| + | indexとshowだけにしたいなら | ||
| + | <code ruby> | ||
| + | resource :models, :only => [:index, :show] | ||
| + | </ | ||
| + | |||
| + | destroyを外すなら | ||
| + | <code ruby> | ||
| + | resource :models, :except => [: | ||
| + | </ | ||
| + | |||
| + | ==== リソース操作メソッドを追加 ==== | ||
| + | 例えば、モデルを検索する/ | ||
| + | <code ruby> | ||
| + | resource :models do | ||
| + | collection do | ||
| + | get :search | ||
| + | end | ||
| + | member do | ||
| + | put :activate | ||
| + | end | ||
| + | end | ||
| + | </ | ||
| + | search_models, | ||
| + | |||
| + | ==== リソースのネスト ==== | ||
| + | <code ruby> | ||
| + | resources :aaaModels do | ||
| + |   resources : | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | ==== URLとメソッドを変える ==== | ||
| + | pathでURLを変える。asでREST URLを生成するメソッド名を変える | ||
| + | |||
| + | <code ruby> | ||
| + | resources :hogefugas, :path => " | ||
| + | </ | ||
| + | とすると | ||
| + | <code ruby> | ||
| + | piyos GET /moges | ||
| + |     piyos POST   / | ||
| + |   | ||
| + | edit_piyo GET    / | ||
| + |      piyo GET    / | ||
| + |           PUT    / | ||
| + |           DELETE / | ||
| + | </ | ||
| + | というREST URLが作成される。 | ||
| + | |||
| + | |||
| + | |||
| + | ===== その他 ===== | ||
| + | ==== match ==== | ||
| + | URLマッチング(rails2のconnect)、/ | ||
| + | <code ruby> | ||
| + | match "/ | ||
| + | </ | ||
| + | asオプションを指定すると、viewにlogin_urlとlogin_pathメソッドが作成される。 | ||
| + | |||
| + | |||
| + | ==== scope ==== | ||
| + | 管理ページを /admin 以下に作りたい場合などの書き方。Rails2まで使っていたpath_prefixオプションは廃止された | ||
| + | <code ruby> | ||
| + | scope "/ | ||
| + | resouces :models | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | ==== namespace  | ||
| + | namespaceを使うとURLはscopeと同じように  | ||
| + | |||
| + | <code ruby> | ||
| + | namespace :admin do | ||
| + | resouces :models | ||
| + | end | ||
| + | </ | ||
| + | |||
| + | この場合、modelのテーブル名はadmin_modelsであることが期待されるし、モデルクラスはAdmin:: | ||
| + | |||
| + | 以下のようにするとnamespace付きでscaffoldできる。 | ||
| + | < | ||
| + | $ rails generate scaffold admin/model title: | ||
| + | </ | ||
| + | |||
| + | ==== root ==== | ||
| + | アプリケーションのルート、コントローラ名とアクション名を以下のように指定する。public/ | ||
| + | <code ruby> | ||
| + | root :to => " | ||
| + | </ | ||
| + | viewでroot_url、root_pathというメソッドを呼ぶと、アプリケーションルートへのURLが作成される。 | ||
| + | |||
| + | |||
| + | |||
| + | ====== Rails2 ====== | ||
| + | ===== 書き方 ===== | ||
| + | config/ | ||
| <code ruby> | <code ruby> | ||
| 行 17: | 行 139: | ||
| </ | </ | ||
| - | 書き方 | ||
| <code ruby> | <code ruby> | ||
| # RAILS_ROOTへのアクセスを処理、root_controllerのindexメソッドが担当する | # RAILS_ROOTへのアクセスを処理、root_controllerのindexメソッドが担当する | ||
rails/routing.1227599810.txt.gz · 最終更新:  (外部編集)