Настраиваемые представления и ресурсы для арендаторов в приложении для нескольких арендаторов?
При использовании движка rails переопределение представлений так же просто, как создание новых представлений в нужной папке. Но при создании приложения с несколькими арендаторами, в котором все арендаторы находятся в одном приложении (они не используют движок), как можно переопределить представления для арендаторов.
Например:
Приложение имеет views/static/about_us.haml
файл, который необходимо настроить для каждого арендатора. Какой лучший способ переопределить этот файл для каждого арендатора?
1 ответ
Я использую жемчужину квартиры, которая хороша для управления средой арендаторов. Квартира помогает вам управлять базой данных на основе схемы и помогает с миграцией.
Приложение использует правильную схему в зависимости от субдомена. Например, в случае superclient.mysuperapp.com, rails будет использовать схему базы данных superclient и будет работать только с этой схемой до завершения запроса.
Для многопользовательских представлений в моем случае я использую before_action в ApplicationController.rb, чтобы добавить мой собственный путь к представлению:
def prepend_view_paths
subdomain = request.subdomain
prepend_view_path "app/views/multitenancy/#{subdomain}"
end
Где поддомен в этом случае суперклиент.
Логика такова: во-первых, rails будет искать представление по этому пути: "app/views/multitenancy/#{subdomain}". И если он ничего не находит, он продолжает находить представление в других путях в списке.
Я надеюсь, что мой ответ поможет вам.