2022-05-24 Railsルーティングファイルを分割する
Rails6.1 で config/routes.rb を分割する
Rails 6.1 で config/routes.rb を簡単に分割する機能ができたので便利。
# config/routes.rb Rails.application.routes.draw do root to: 'home#index' resources :users draw(:admin) draw(:api) end# config/routes/admin.rb namespace 'admin' do root to: "home#index" end# config/routes/api.rb namespace 'api' do resources :users end
分割手順
- ベースとなるルーティングファイル(
config/routes.rb)にてdraw(:another)を記述 config/routes/配下にanother.rbを配置another.rbファイル内に分割したい単位のルーティングを記述
本当に必要になるまでは分割しないこと
公式ガイドに注意喚起されているが、無闇にルーティングファイルを分割するのは気をつけたほうが良い、と書いてある。
ルーティングファイルを複数に分けると、理解が難しくなり、見落としやすくなります。ほとんどのアプリケーションでは、たとえルーティングが数百個になっていたとしても、ルーティングファイルを1つのままにしておくほうが開発者にとっては楽です。Railsのルーティングには、namespaceやscopeを用いてルーティングを分割整理する方法が既に用意されています。