resourcesメソッド
(リソースフル)
resources :users
7つ生成される
Prefix | Verb | URI Pattern | Controller#Action | 用途 | コレクションルート/メンバールート |
---|---|---|---|---|---|
users | GET | /users(.:format) | users#index | 一覧ページ表示用 | コレクションルート |
POST | /users(.:format) | users#create | 新規処理用 | コレクションルート | |
new_user | GET | /users/new(.:format) | users#new | 新規ページ表示用 | コレクションルート |
edit_user | GET | /users/:id/edit(.:format) | users#edit | 編集(更新)ページ表示用 | メンバールート |
user | GET | /users/:id(.:format) | users#show | 1件表示用 | メンバールート |
PUT | /users/:id(.:format) | users#update | 編集(更新)処理用 | メンバールート | |
DELETE | /users/:id(.:format) | users#destroy | 削除処理用 | メンバールート |
resourceメソッド
(ノンリソースフル)
resource :page
6つ生成される
Prefix | Verb | URI Pattern | Controller#Action | 用途 |
---|---|---|---|---|
POST | /page(.:format) | users#create | 新規処理用 | |
new_page | GET | /page/new(.:format) | page#new | 新規ページ表示用 |
edit_page | GET | /page/edit(.:format) | page#edit | 編集(更新)ページ表示用 |
page | GET | /page(.:format) | page#show | 1件表示用 |
PUT | /page(.:format) | page#update | 編集(更新)処理用 | |
DELETE | /page(.:format) | page#destroy | 削除処理用 |
collectionメソッド
独自のコレクションルートを生やす
resources :users do
collection do
get :search
end
end
memberメソッド
独自のメンバールートを生やす
resources :users do
member do
get :profile
end
end
shallowオプション
子のメンバールートを親を通さずアクセスできるようにする
resources :users, shallow: true do
resources :comments
end
親子関係に組み込まれるかどうか(今回はcomments
のアクションについて)
Action | 親子関係に組み込まれる/組み込まれない |
---|---|
index | 組み込まれる |
create | 組み込まれる |
new | 組み込まれる |
edit | 組み込まれない |
show | 組み込まれない |
update | 組み込まれない |
destroy | 組み込まれない |
namespaceメソッド
スコープとモジュールを変更
個別にscopeメソッド
とmoduleオプション
を指定するのを一気にやってくれる。基本的に個別のscope
とmodule
は使わず、namespace
を使うことなると思う。
コントローラをディレクトリを作って綺麗に階層構造を作ってる時にURLとディレクトリ構造を合わせたい時に使用。
namespace :admin do
resources :users
end