文書の過去の版を表示しています。
rails3のURL設定
書き方がrails2から変わっているが、rails2の書き方も可能。config/routes.rbにURLの設定を書く。
現在のURL設定を見る
$ rake routes
リソース
Rest指向のCRUD URLが作成される
resource :models
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だけにしたいなら
resource :models, :only => [:index, :show]
destroyを外すなら
resource :models, :except => [:destroy]
リソース操作メソッドを追加
例えば、モデルを検索する/models/search, 特定のモデルを有効化する /models/:id/activate というURLを追加するなら
resource :models do collection do get :search end member do put :activate end end
search_models, activate_model というviewから呼び出せるルーティングメソッドが作成される。
リソースのネスト
resources :aaaModels do resources :bbbModels end
その他
URLマッチング(rails2のconnect)、/auth/login へのアクセスを AuthControllerクラスのloginメソッドにディスパッチする。
match "/auth/login" => "auth#login", :as => "login"
asオプションを指定すると、viewにlogin_urlとlogin_pathメソッドが作成される。
管理ページを /admin 以下に作りたい場合などの書き方。Rails2まで使っていたpath_prefixオプションは廃止された
scope "/admin" do resouces :models end
アプリケーションのルート、コントローラ名とアクション名を以下のように指定する。public/index.htmlがあるとそちらが優先される
root :to => "controller#action"
viewでroot_url、root_pathというメソッドを呼ぶと、アプリケーションルートへのURLが作成される。