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 · 最終更新: 2011/04/19 12:36 (外部編集)