Я организую мультитенантное приложение с одной базой кода / приложением, использующим субдомены для обнаружения арендатора, а затем запускаю SET SCHEMA на postgres, чтобы делать забавные вещи.
Моя проблема в том, что определенные клиенты будуттребуют различных уровней настройки для основной базы кода.Не тонна, но, безусловно, достаточно для того, чтобы я не хотел начинать взламывать основные модели и контроллеры, добавляя кучу операторов if.
Переопределение представлений достаточно просто с путями загрузки представлений ...но мой вопрос: как я могу обеспечить хорошую основу для переопределения или добавления функциональности к базовым контроллерам, моделям и помощникам, чтобы настроить вещи для каждого арендатора по мере необходимости?В идеале он должен быть довольно незаметным и не инвазивным по отношению к основному коду, а также должен обеспечивать достойный механизм для организации настраиваемого кода.
Я исследовал несколько вариантов, включая использование include / extends (mixins).Проблема в том, что в производстве методы остаются в объектах (понятно).Я пытался обойти этот миксологию, но он работает не совсем так, как я задумал, и он немного более инвазивен, чем хотелось бы, мне также неясно, как соотнести его с моделями (в контроллерах я только что попробовал mixin / unmix через фильтры до / после).
Если у кого-то есть идеи, как лучше всего подойти / решить эту проблему, я был бы очень признателен за ваш отзыв.FWIW это Rails3