開発

[Rails]ルーティングファイルをdrawを使って分割する

 

プロジェクトのアプリケーションが大きくなるにつれて、ルーティング(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
YasuharaKenta
社会人3年目の年になります。2年間専門商社の営業として従事し、現在は都内でWebエンジニアとして働いています。 新人エンジニアとしてわからないことなどを、分かりやすくブログにまとめれるように頑張っていきます!!
株式会社Playgroundのサービス
  • 無料・簡単・片手でホームページを作成できる自社サービス Rakwi
  • Web制作とアプリ開発を学べるオンラインプログラミング講座 Upstairs
  • 開発,DX推進支援サービス スタートアッププラン

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA