rails で routes.rb を分割管理する方法
- POST
プロジェクト自体が大きくなってきた際に routes.rb にまとめて記載すると見づらくて追加しようとした際にわかりずらい課題が発生した
そのため、rails で routes.rb を分割管理する方法を備忘録として残しておく
参考
環境 ruby: 3.0.5 rails: 6.1.7 方法 concern を使用して共通の routes を定義する draw を使用して別ファイルに分割する 前提 config |-routes | |-concerns.rb # プロジェクト共通の routes | |-foo_service_provider.rb # Foo サービス用の routes | |-hoge_service_provider.rb # Hoge サービス用の routes | |-service_provider_common.rb # サービス共通の routes |-routes.rb 実際の例 concern :loggable do get "login", to: "sessions#new" post "login", to: "sessions#create" delete "logout", to: "sessions#destroy" end concern :data do namespace :data do get "download" end end namespace :service_provider, path: "services" do concerns :loggable scope :home, as: :home do get "/", to: "home#index" end end draw(:service_provider_common) namespace :service_provider, path: "services" do concerns :data end draw(:service_provider_common) namespace :service_provider, path: "services" do resources :users, only: [:index, :show] end # == Route Map # # Prefix Verb URI Pattern Controller#Action # admin_login GET /admin/login(.