resource

単一のリソースを定義(resource)

適応バージョン

  • 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を自動生成

使い方

resource(リソース名 [, オプション])

生成されるルート

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

生成されるパス

パスURL戻り値
XXX_pathXXX_url/XXX
new_XXX_pathnew_XXX_url/XXX/new
edit_XXX_pathedit_XXX_url/XXX/edit

オプション

オプション説明
:asルート名に利用する別名
:controllerコントローラを指定
:pathURLを書き換える
:only生成されるURLを絞り込む
:except指定したURLは生成しない
:modulenamespaceを付与
:constraints制限を付ける

単一のリソースを定義
resource :page
#      page POST   /page(.:format)      pages#create
#  new_page GET    /page/new(.:format)  pages#new
# edit_page GET    /page/edit(.:format) pages#edit
#           GET    /page(.:format)      pages#show
#           PUT    /page(.:format)      pages#update
#           DELETE /page(.:format)      pages#destroy
ルート名に使用する名前
resource :page, :as => :main
#      main POST   /page(.:format)      pages#create
#  new_main GET    /page/new(.:format)  pages#new
# edit_main GET    /page/edit(.:format) pages#edit
#           GET    /page(.:format)      pages#show
#           PUT    /page(.:format)      pages#update
#           DELETE /page(.:format)      pages#destroy
処理するコントローラを指定
resource :page, :controller => :main
#      page POST   /page(.:format)      main#create
#  new_page GET    /page/new(.:format)  main#new
# edit_page GET    /page/edit(.:format) main#edit
#           GET    /page(.:format)      main#show
#           PUT    /page(.:format)      main#update
#           DELETE /page(.:format)      main#destroy
URLを置き換える
resource :page, :path => 'admin/page'
#      page POST   /admin/page(.:format)      pages#create
#  new_page GET    /admin/page/new(.:format)  pages#new
# edit_page GET    /admin/page/edit(.:format) pages#edit
#           GET    /admin/page(.:format)      pages#show
#           PUT    /admin/page(.:format)      pages#update
#           DELETE /admin/page(.:format)      pages#destroy
作成されるURLを絞り込む
resource :page, :only => [:show]
# page GET /page(.:format) pages#show
作成しないURLを指定
resource :page, :except => [:create, :new]
# edit_page GET    /page/edit(.:format) pages#edit
#      page GET    /page(.:format)      pages#show
#           PUT    /page(.:format)      pages#update
#           DELETE /page(.:format)      pages#destroy
コントローラにnamespaceを不要
resource :page, :module => :admin
#      page POST   /page(.:format)      admin/pages#create
#  new_page GET    /page/new(.:format)  admin/pages#new
# edit_page GET    /page/edit(.:format) admin/pages#edit
#           GET    /page(.:format)      admin/pages#show
#           PUT    /page(.:format)      admin/pages#update
#           DELETE /page(.:format)      admin/pages#destroy

ソースコード

ソースコード検索