Рассматривали ли вы использование Rails :: Engine? Это даст вам возможность изолировать набор связанных моделей, контроллеров, представлений, маршрутов, помощников, миграций и тестов. Rails :: Engines также могут быть сконфигурированы как гем, поэтому использование движка в нескольких проектах становится возможным. Если вы хотите использовать свой движок в нескольких проектах, вам могут пригодиться версии gem.
http://edgeapi.rubyonrails.org/classes/Rails/Engine.html
Я предлагаю взглянуть на Devise, чтобы узнать, сколько можно сделать с помощью Rails :: Engine.
https://github.com/plataformatec/devise
Если вы хотите изолировать только небольшие фрагменты бизнес-логики, тогда ActiveSupport :: Concern может быть более подходящим.
http://api.rubyonrails.org/classes/ActiveSupport/Concern.html
Наконец, то, что я никогда не использовал, но выглядит интересно, это модульность. Пример из документации выглядит в принципе несколько похожим на ActiveSupport :: Concern.
class User < ActiveRecord::Base
does "user/authentication"
does "user/address"
end
https://github.com/makandra/modularity
Я буду отслеживать разные ответы, потому что пытаюсь решить ту же проблему.