プロジェクトのアプリケーションが大きくなるにつれて、ルーティング(config/routes.rb)ファイルも肥大化して、カオスになることがあると思います。
そのような時に、ルーティングファイルを分けて分かりやすくする方法を拝見したので記事にまとめてみようと思います。
※この機能は、Rails6.1から使えるようになります。
drawを使用してファイルを分割する
例えば、このようなファイルがあったとします。
# config/routes.rb
Rails.application.routes.draw do
namespace :admin do
# 省略
end
namespace :api do
# 省略
end
namespace :user do
# 省略
end
namespace :board do
# 省略
end
end
これだけの量であれば、デフォルトで作成されるルーティングファイルに書くだけで大丈夫かもしれませんが、サービスが成長するにつれてコード量は必然と多くなります。
そのような時にdrawを使用することで、スッキリとファイルを分けて管理することができます。
draw :[ファイル名]
と記述してやります。
# config/routes.rb
Rails.application.routes.draw do
draw :admin
draw :api
draw :user
draw :board
end
この分割ファイルをconfig/routes/ディレクトリに置きます。
なので、今回の場合ですと、
- config/routes/admin.rb
- config/routes/api.rb
- config/routes/user.rb
- config/routes/board.rb
を作成して、それぞれのルーティングのコードを記述してあげます。
# config/routes/admin.rb
namespace :admin do
# 省略
end
# config/routes/api.rb
namespace :api do
# 省略
end
# config/routes/user.rb
namespace :user do
# 省略
end
# config/routes/board.rb
namespace :board do
# 省略
end
このように4つのファイルに分割して書くことができます。
もちろん、全てをdrawで別ファイルに分ける必要もないので、必要に応じて分けてみるといいと思います。
最後に
ルーティングファイルを名前空間ごとに分けることによって、スッキリと分かりやすくなるので開発がしやすくなると感じました。
このような機能がRailsの標準機能として提供されているのはありがたいですね。
今後ともブログを更新していこうと思いますので、よろしくお願いします。
参考にしたサイト
https://github.com/rails/rails/pull/37892
ABOUT ME
株式会社Playgroundのサービス
- 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
- Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
- 開発,DX推進支援サービス スタートアッププラン