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を用いてルーティングを分割整理する方法が既に用意されています。