Страницы

Поиск по вопросам

вторник, 16 июля 2019 г.

Разделение приложения на backend и frontend части

Всем привет, встал вопрос разделение приложение на логические части, ну т.е. как минимум backend, frontend. Как я себе представляю структуру приложения:
-app -backend -controllers -models -helpers -assets -views -frontend -controllers -models -helpers -assets -views -common -controllers -models -helpers -assets -views
На данный момент я не знаю, возможно ли это реализовать в рельсах, гугление пока не помогло, но считаю что такая структура будет гораздо лучше чем создавать в одном application-е разделение типа
-controllers -frontend/ -backend/ -common/
В application.rb есть у config свойство root, но это корень всего проекта, т.е. после его переназначения к примеру app/backend, рельсы начинают искать все файлы который лежат в / приложения в app/backend(что в принципе логично).
Вообще в идеале я рассчитываю по subdomain переназначать путь к app приложения, вроде того:
config.path_to_app = case request.subdomain when 'admin' then 'app/backend' when 'api' then 'app/api' else 'app/frontend' end
Помогите пожалуйста разобраться возможно ли разбить приложение таким образом или хотя бы посоветуйте best practice.


Ответ

Сталкивался с такой же проблемой. На помощь пришёл Rails Engine. Суть в том, что создается встроенное приложение, со своими маршрутами, и файловой структурой. Затем это приложение(Engine) подключается к основному проекту как гем, с указанием пути, где оно находится. А в routes.rb основного приложения монтируются маршруты созданного Engine.
Подробнее здесь: http://rusrails.ru/engines

Комментариев нет:

Отправить комментарий