Существует три способа создания расширений Rails: обычный старый код ruby, Railties и Engines.
Railties и Engines позволяют вам взаимодействовать с платформой Rails во время инициализации с использованием хуков и, следовательно, расширять Rails. Фактически каждый крупный компонент Rails (ActiveRecord, ActionPack и т. Д.) Является Railtie.
Основное различие между Railtie и движком Rails состоит в том, что движок может определять свою собственную конфигурацию, модели, контроллеры и представления. В каком-то смысле движок - это приложение Rails, которое вы можете развернуть в другом. В вашем случае, я думаю, Rails Engine будет правильным выбором.
Какую бы опцию вы не использовали, вам придется создать гем, чтобы распространить ваше расширение и поделиться им между проектами.
Вот суть, объясняющая понятия Railtie и Engine
Руководство по запуску собственного двигателя рельсов.
Enginex, инструмент командной строки, который создает Rails 3 Engine