Самое главное, я бы порекомендовал не объединять приложения.Сценарии изменения пакета при развертывании для разделения двух приложений подвержены ошибкам и противоречат текущим процедурам контроля качества - вы хотите, чтобы разрабатываемый код максимально соответствовал развернутому приложению.
Учитывая, чтоВы хотите взглянуть на различные подходы модульности.На самом деле существует множество опций для обмена кодом:
- gem
- плагин
- библиотечный код, включенный в подмодуль git или эквивалентный
- rails engine
- отдельное развернутое приложение
Возможно, общий движок, упакованный как драгоценный камень, является наилучшим способом, но для получения полной выгоды требуется, чтобы вы были на правильной версии Rails.Даже без движка вы можете заставить это работать ... просто потребуется немного больше настройки.
Под «отдельным развернутым приложением» я имею в виду третье приложение, которое имеет общую функциональность.Это могут быть необходимые ресурсы (CSS, JS) и даже части страниц (загружаются динамически).Это потенциально забавное решение, но я видел, что оно работает в правильной ситуации.
И любое из этих решений требует немного больше усилий со стороны разработчиков ... но, в конце концов, лучшепроблемы с развертыванием, которые вы получите, используя mergine *