Я встроил пользовательскую панель администрирования в приложение Rails, которое позволяет редактировать контент определенных моделей через графический интерфейс. Первоначально я разработал приложение «admin», которое будет действовать в качестве родительских приложений - с его MVC, Gemfile, миграциями и т. Д. - и создал подпрограммы (в каталоге с именем frontends), которые действуют как веб-интерфейсы для моделей администратора. Подприложения наследуют MVC от родительского приложения администратора, что позволяет разрабатывать внешние интерфейсы веб-сайтов и основываться на существующей архитектуре администратора без постоянного повторного создания сайтов администрирования для каждого нового проекта.
Структура на моей локальной машине в настоящее время выглядит следующим образом:
Administration Application <-- Individual git repo
-> app
-> admin
-> config
...
-> frontends
-> Website_1 <-- Individual git repo
-> app
-> config
...
-> Website_2 <-- Individual git repo
-> app
-> config
...
Текущий внешний интерфейс определяется простым файлом frontend.yml
в конфигурации, который загружает приложение внешнего интерфейса в инициализатор перед приложением администратора.
Я чувствую, что неблагоразумно иметь такую вложенную структуру. Во-первых, вложенность git-репозиториев на моем компьютере-хранилище грязная, и, что более важно, очень сложно переключить контекст проекта за относительно короткий промежуток времени. Например, если я хочу переключиться с Website_1 на Website_2, я должен выйти из rails server
и запустить задачу rake, которая переключает внешние интерфейсы. Это также становится немного более громоздким, когда веб-интерфейс использует другую ветвь приложения администрирования. Я трачу много времени впустую, переключаясь между контекстами, чтобы продолжить разработку своих проектов.
Я хотел бы изменить структуру приложения, в котором каждый интерфейс является собственным независимым приложением Rails. Кажется, это упростило бы переключение контекстов разработки - позволяя запускать более одного приложения одновременно в rails server
, тестировании и т. Д. Я также хочу иметь возможность продолжать размещать приложение администрирования под git, поскольку В ряде веток и тегов есть разные варианты приложения.
Каков наилучший способ приблизиться к этой реконфигурации? Я думал о создании жемчужины административного приложения и загрузке его из Bundler.