config/routes.rbのshallow: trueとは
仕事で見てよく分からなかったので調べてみた。
http://qiita.com/kuboon/items/96bbd227f9497ed81f38
resources :groups do resources :users end resources :users
group_users GET /groups/:group_id/users(.:format) users#index POST /groups/:group_id/users(.:format) users#create new_group_user GET /groups/:group_id/users/new(.:format) users#new edit_group_user GET /groups/:group_id/users/:id/edit(.:format) users#edit group_user GET /groups/:group_id/users/:id(.:format) users#show PATCH /groups/:group_id/users/:id(.:format) users#update PUT /groups/:group_id/users/:id(.:format) users#update DELETE /groups/:group_id/users/:id(.:format) users#destroy groups GET /groups(.:format) groups#index POST /groups(.:format) groups#create new_group GET /groups/new(.:format) groups#new edit_group GET /groups/:id/edit(.:format) groups#edit group GET /groups/:id(.:format) groups#show PATCH /groups/:id(.:format) groups#update PUT /groups/:id(.:format) groups#update DELETE /groups/:id(.:format) groups#destroy 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 PATCH /users/:id(.:format) users#update PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy
resources :groups, shallow: true do resources :users end
group_users GET /groups/:group_id/users(.:format) users#index POST /groups/:group_id/users(.:format) users#create new_group_user GET /groups/:group_id/users/new(.:format) users#new edit_user GET /users/:id/edit(.:format) users#edit user GET /users/:id(.:format) users#show PATCH /users/:id(.:format) users#update PUT /users/:id(.:format) users#update DELETE /users/:id(.:format) users#destroy groups GET /groups(.:format) groups#index POST /groups(.:format) groups#create new_group GET /groups/new(.:format) groups#new edit_group GET /groups/:id/edit(.:format) groups#edit group GET /groups/:id(.:format) groups#show PATCH /groups/:id(.:format) groups#update PUT /groups/:id(.:format) groups#update DELETE /groups/:id(.:format) groups#destroy
つまり、
resources :groups, shallow: true do resources :users end
resources :groups do resources :users, only: [:new, :create, :index] end resources :users, only: [:edit, :show, :update, :destroy]
ということかー!?
個人的に、階層構造を示したくてネスト構造のルート書いたんだから、後者の書き方の方が好きではある。
(というか、善し悪し考えず新しければgemであれば、みたいな書き方はさっきの記事でも書いたけど、嫌いなんである。お題目は考え方の補助ではあるんだけど、それのすべてではないよね、それだったらRSSリーダ購読機能のついたコードジェネレータにやらせれば私らそのうち要らんくなるでしょ、みたいな悲観症というか)。