確認画面とか、いろんなページで同じルートを設定する場合に便利。
例えばこんな感じで確認画面のルートを設定(config/routes.rb)していた場合、
concernを使うとこんなにスッキリ!resources :users do patch :confirm, :on => :member put :confirm, :on => :member post :confirm, :on => :collection end resources :information do patch :confirm, :on => :member put :confirm, :on => :member post :confirm, :on => :collection end
こうすると、 rake routes ではこんな感じ。concern :confirmable do patch :confirm, :on => :member put :confirm, :on => :member post :confirm, :on => :collection end resources :users, :concerns => :confirmable resources :information, :concerns => :confirmable
$ rake routes | grep "users\|information" confirm_user PATCH /users/:id/confirm(.:format) users#confirm PUT /users/:id/confirm(.:format) users#confirm confirm_users POST /users/confirm(.:format) users#confirm 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 confirm_system_information PATCH /information/:id/confirm(.:format) information#confirm PUT /information/:id/confirm(.:format) information#confirm confirm_system_information_index POST /information/confirm(.:format) information#confirm system_information_index GET /information(.:format) information#index POST /information(.:format) information#create new_system_information GET /information/new(.:format) information#new edit_system_information GET /information/:id/edit(.:format) information#edit system_information GET /information/:id(.:format) information#show PATCH /information/:id(.:format) information#update PUT /information/:id(.:format) information#update DELETE /information/:id(.:format) information#destroy
0 件のコメント:
コメントを投稿