Rails 5: инкапсуляция файлов маршрутов - PullRequest
0 голосов
/ 25 июня 2018

Я выполняю рефакторинг файла маршрутов моих компаний после этого поста , чтобы он выглядел следующим образом.

конфиг / application.rb

module YourProject class Application < Rails::Application config.autoload_paths += %W(#{config.root}/config/routes) end end

конфигурация / маршруты / admin_routes.rb

module AdminRoutes def self.extended(router) router.instance_exec do namespace :admin do resources :articles root to: "dashboard#index" end end end end

конфиг / routes.rb

Rails.application.routes.draw do extend AdminRoutes end

Какую бы большую часть нашего нового кода RoR мы не поместили в appsules, которые являются самостоятельными небольшими частями приложения, которые содержат свои собственные контроллеры, модели, сериализаторы и т. Д., И кто-то упомянул, как было бы хорошо, если бы они также содержали свои маршруты. Путь к этому будет выглядеть следующим образом

/appsules/#{appsule_name}/routes.rb

Но когда я смотрю на config.paths в моем application.rb, я не вижу никаких путей, относящихся к каталогу appsules. Можно ли таким образом читать файлы маршрутов?

1 Ответ

0 голосов
/ 25 июня 2018

Обновляете ли вы путь автозагрузки для использования новых структур папок? Что-то вроде:

module YourProject
  class Application < Rails::Application
    config.autoload_paths += %W(
      #{config.root}/config/routes
      #{config.root}/appsules/appsule1_name/routes.rb
      #{config.root}/appsules/appsule2_name/routes.rb
    )
  end
end

Если вы хотите, чтобы они добавлялись динамически, вы должны иметь возможность перебирать каталог appsule и динамически добавлять эти файлы в путь автозагрузки.

...