Настраиваемые представления и ресурсы для арендаторов в приложении для нескольких арендаторов?

При использовании движка 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}". И если он ничего не находит, он продолжает находить представление в других путях в списке.

Я надеюсь, что мой ответ поможет вам.

Другие вопросы по тегам