Railsのルーティングをグルーピングする方法
今回は、namespaceなどのオプションを使ったルーティングの生成を見ていきます。
◆namespaceとは
Ruby on Railsのルーティングを作成するときnamespaceを使うと指定したルーティングの配下にルーティングを設定することができます。
早速実例を見ていきましょう。
Rails.application.routes.draw do
namespace :hoge do
resources :blogs
end
end
このようなルーティングを設定して、rake routesを実行してみると
Prefix Verb URI Pattern Controller#Action
hoge_blogs GET /hoge/blogs(.:format) hoge/blogs#index
POST /hoge/blogs(.:format) hoge/blogs#create
new_hoge_blog GET /hoge/blogs/new(.:format) hoge/blogs#new
edit_hoge_blog GET /hoge/blogs/:id/edit(.:format) hoge/blogs#edit
hoge_blog GET /hoge/blogs/:id(.:format) hoge/blogs#show
PATCH /hoge/blogs/:id(.:format) hoge/blogs#update
PUT /hoge/blogs/:id(.:format) hoge/blogs#update
DELETE /hoge/blogs/:id(.:format) hoge/blogs#destroy
上記のようなルーティングが作成されます。
作成されたルーティングを見るとresources :blogsだけでルーティングを設定した時とは違い、ルーティングにhogeや/hogeが付いています。
このようにnamespace :指定したいルーティング do 〜 endと記載すると指定したいルーティングがnamespaceの中で記載したルーティングに付与されるようになります。
ルーティングをグルーピングしたい際などにnamespaceを用いることでルーティングをいい感じに設定することができます。
◆namespace使用シーン
namespaceの利用方法として多いのは管理画面のルーティングを作成する際によく用いられることがあります。
Rails.application.routes.draw do
namespace :admin do
resources :blogs
resources :users
...
end
end
上記のようなadminのnamespaceを切って、namespaceの中に開発しているWebアプリケーションのリソースのルーティングをどんどん入れていって管理画面でDBのCRUD処理をできるようにするルーティングを作成するといったケースは多いと思います。
詳しくは下段で説明します。
(リンク »)
お問い合わせにつきましては発表元企業までお願いいたします。