resources

RESTfulなURLを自動生成(resources)

適応バージョン

  • 1.0.0
  • 1.1.0
  • 1.1.1
  • 1.1.6
  • 1.2.0
  • 1.2.6
  • 2.0.0
  • 2.0.1
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.5
  • 3.0.7
  • 3.0.9
  • 3.1.0
  • 3.2.3
  • 3.2.8
  • 3.2.13
  • 4.0.0
  • 4.1.0
  • 4.2.1

説明

RESTfulなURLを自動生成

使い方

resources :リソース名 [, オプション]

生成されるルート

URLアクションHTTPメソッド説明
/XXXs(.:format)indexGET一覧画面を生成
/XXXs/:id(.:format)showGET詳細画面を生成
/XXXs/new(.:format)newGET登録画面を生成
/XXXs(.:format)createPOST登録処理
/XXXs/:id/edit(.:format)editGET編集画面を生成
/XXXs/:id(.:format)updatePUT更新処理
/XXXs/:id(.:format)destroyDELETE削除処理

生成されるパス

パスURL戻り値
XXXs_pathXXXs_url/XXXs
XXX_path(:id)XXX_url(:id)/XXXs/:id
new_XXX_pathnew_XXX_url/XXXs/new
edit_XXX_path(:id)edit_XXX_url(:id)/XXXs/:id/edit

オプション

オプション説明
:asルート名に利用する別名
:controllerコントローラを指定
:path_names指定したアクションのみ名前の変更
:pathURLを書き換える
:only生成されるURLを絞り込む
:except指定したURLは生成しない
:shallowGenerates shallow routes for nested resource(s). When placed on a parent resource, generates shallow routes for all nested resources.
:shallow_pathPrefixes nested shallow routes with the specified path.
:shallow_prefixPrefixes nested shallow route names with specified prefix.
:formatAllows you to specify the default value for optional format segment or disable it by supplying false.

RESTfulなURLを自動生成
resources :pages
#     pages GET    /pages(.:format)          pages#index
#           POST   /pages(.:format)          pages#create
#  new_page GET    /pages/new(.:format)      pages#new
# edit_page GET    /pages/:id/edit(.:format) pages#edit
#      page GET    /pages/:id(.:format)      pages#show
#           PUT    /pages/:id(.:format)      pages#update
#           DELETE /pages/:id(.:format)      pages#destroy
ルート名に使用する名前をmainにする
resources :pages, :as => :main
# main_index GET    /pages(.:format)          pages#index
#            POST   /pages(.:format)          pages#create
#   new_main GET    /pages/new(.:format)      pages#new
#  edit_main GET    /pages/:id/edit(.:format) pages#edit
#       main GET    /pages/:id(.:format)      pages#show
#            PUT    /pages/:id(.:format)      pages#update
#            DELETE /pages/:id(.:format)      pages#destroy
処理するコントローラを指定
resources :pages, :controller => :mains
#     pages GET    /pages(.:format)          mains#index
#           POST   /pages(.:format)          mains#create
#  new_page GET    /pages/new(.:format)      mains#new
# edit_page GET    /pages/:id/edit(.:format) mains#edit
#      page GET    /pages/:id(.:format)      mains#show
#           PUT    /pages/:id(.:format)      mains#update
#           DELETE /pages/:id(.:format)      mains#destroy
URLを置き換える
resources "pages", :path => 'admin/page'
#     pages GET    /admin/page(.:format)          pages#index
#           POST   /admin/page(.:format)          pages#create
#  new_page GET    /admin/page/new(.:format)      pages#new
# edit_page GET    /admin/page/:id/edit(.:format) pages#edit
#      page GET    /admin/page/:id(.:format)      pages#show
#           PUT    /admin/page/:id(.:format)      pages#update
#           DELETE /admin/page/:id(.:format)      pages#destroy
作成されるURLを絞り込む
resources :pages, :only => [:index]
# pages GET /pages(.:format) pages#index
作成しないURLを指定
resources :pages, :except => [:index, :show]
#     pages POST   /pages(.:format)          pages#create
#  new_page GET    /pages/new(.:format)      pages#new
# edit_page GET    /pages/:id/edit(.:format) pages#edit
#      page PUT    /pages/:id(.:format)      pages#update
#           DELETE /pages/:id(.:format)      pages#destroy
コントローラにnamespaceを不要
resources :pages, :module => :main
#     pages GET    /pages(.:format)          main/pages#index
#           POST   /pages(.:format)          main/pages#create
#  new_page GET    /pages/new(.:format)      main/pages#new
# edit_page GET    /pages/:id/edit(.:format) main/pages#edit
#      page GET    /pages/:id(.:format)      main/pages#show
#           PUT    /pages/:id(.:format)      main/pages#update
#           DELETE /pages/:id(.:format)      main/pages#destroy
制限を付ける
resources :users, :constraints => {:title => /[a-z]{1,15}/}
#     users GET    /users(.:format)          users#index {:title=>/[a-z]{1,15}/}
#           POST   /users(.:format)          users#create {:title=>/[a-z]{1,15}/}
#  new_user GET    /users/new(.:format)      users#new {:title=>/[a-z]{1,15}/}
# edit_user GET    /users/:id/edit(.:format) users#edit {:title=>/[a-z]{1,15}/}
#      user GET    /users/:id(.:format)      users#show {:title=>/[a-z]{1,15}/}
#           PUT    /users/:id(.:format)      users#update {:title=>/[a-z]{1,15}/}
#           DELETE /users/:id(.:format)      users#destroy {:title=>/[a-z]{1,15}/}

ソースコード

ソースコード検索