ユーザ用ツール

サイト用ツール


rails3:routing

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
rails3:routing [2011/04/12 16:40] – [その他] nullponrails3:routing [2011/04/19 12:37] (現在) – 削除 nullpon
行 1: 行 1:
-====== rails3のURL設定 ====== 
-書き方が[[/rails/routing|rails2]]から変わっているが、rails2の書き方も可能。config/routes.rbにURLの設定を書く。 
- 
-===== 現在のURL設定を見る ===== 
-  $ rake routes 
- 
-===== リソース ===== 
-Rest指向のCRUD URLが作成される 
-<code ruby> 
-resource :models 
-</code> 
- 
- 
-==== resource とresources ==== 
-resourceは以下のアクションが作成される。ユーザから見て、このリソースに属するデータが単一である場合に使う。例えばシステム利用者が自分のユーザ情報を管理する場合、自分自身のユーザ情報以外は見える必要がないので、利用者から見ればユーザ情報は単一のリソースとみなせる。この場合はresourceを使う。 
-|GET|show|/resource| 
-|GET|new|/resource/new| 
-|GET|edit|/resource/edit| 
-|POST|create|/resource| 
-|PUT|update|/resource| 
-|DELETE|destroy|/resource| 
- 
-resourcesは以下のアクションが作成される。ユーザから見て、このリソースに属するデータが複数がある場合に使う。例えば管理者が、利用者のユーザ情報全体を管理する必要がある場合、こちらを使う。 
-|GET|index|/resources| 
-|GET|new|/resources/new| 
-|GET|edit|/resources/:id/edit| 
-|GET|show|/resources/:id| 
-|POST|create|/resources| 
-|PUT|update|/resources/:id| 
-|DELETE|destroy|/resources/:id| 
- 
-==== リソース操作メソッドを減らす ==== 
-indexとshowだけにしたいなら 
-<code ruby> 
-resource :models, :only => [:index, :show] 
-</code> 
- 
-destroyを外すなら 
-<code ruby> 
-resource :models, :except => [:destroy] 
-</code> 
- 
-==== リソース操作メソッドを追加 ==== 
-例えば、モデルを検索する/models/search, 特定のモデルを有効化する /models/:id/activate というURLを追加するなら 
-<code ruby> 
-resource :models do 
-  collection do 
-    get :search 
-  end 
-  member do 
-    put :activate 
-  end 
-end 
-</code> 
-search_models, activate_model というviewから呼び出せるルーティングメソッドが作成される。 
- 
-==== リソースのネスト ==== 
-<code ruby> 
-resources :aaaModels do 
-  resources :bbbModels 
-end 
-</code> 
- 
-===== その他 ===== 
-URLマッチング(rails2のconnect)、/auth/login へのアクセスを AuthControllerクラスのloginメソッドにディスパッチする。 
-<code ruby> 
-match "/auth/login" => "auth#login",  :as => "login" 
-</code> 
-asオプションを指定すると、viewにlogin_urlとlogin_pathメソッドが作成される。 
- 
-管理ページを /admin 以下に作りたい場合などの書き方。Rails2まで使っていたpath_prefixオプションは廃止された 
-<code ruby> 
-scope "/admin" do 
-  resouces :models 
-end 
-</code> 
- 
-namespaceはscopeに似ているが、モデルからテーブル名まで何から何まで名前空間が設定される。 
- 
-<code ruby> 
-namespace "/admin" do 
-  resouces :models 
-end 
-</code> 
- 
-この場合、modelのテーブル名はadmin_modelsであることが期待されるし、モデルクラスはAdmin::Modelである必要がある。色々面倒なのでscaffoldで生成する以外では使わないだろう。以下のようにするとnamespace付きでscaffoldできる。 
-<code> 
-$ rails generate scaffold admin/model title:string enabled_from:date ... 
-</code> 
- 
- 
- 
- 
- 
- 
-アプリケーションのルート、コントローラ名とアクション名を以下のように指定する。public/index.htmlがあるとそちらが優先される 
-<code ruby> 
-root :to => "controller#action" 
-</code> 
-viewでroot_url、root_pathというメソッドを呼ぶと、アプリケーションルートへのURLが作成される。 
- 
  
rails3/routing.1302626413.txt.gz · 最終更新: 2011/04/12 16:40 by nullpon