Мультиарендность Rails и динамическая c маршрутизация - PullRequest
0 голосов
/ 21 июня 2020

Контекст проблемы - это форма мультитенантного приложения. Различные объекты имеют доступ к центральному набору классов и методов. Однако представления могут быть полностью перенастроены с помощью центрального метода. Кроме того, некоторые специальные c методы могут быть разработаны для данного объекта, который мы будем называть @site.

Таким образом,

class SharedmethodsController < ApplicationController
class SitexController < SharedmethodsController    

, где Sitex включает уникальное имя сайта

Представления будут номинально размещаться в подкаталоге sites/sitex

Таким образом, хотя руководство по маршрутизации рельсов обеспечивает механизм доступа к хорошо идентифицированному маршруту из нескольких объекты

resources :magazines do
  resources :ads
end

это только обеспечивает привязку к id объектам.

Первая проблема в том, что у нас нет ни определения имени контроллера, ни четкое представление о том, где сохранить контроллер и представления в соответствии с соглашением о рельсах. Этот символ относится к классу stati c, таким образом, это означает, что для каждого нового сайта должен быть объявлен новый набор ресурсов.

Вторая проблема - как лучше настроить представления. Представления Sitex в большинстве случаев будут такими же, как и унаследованные методы Shared. Альтернативой может быть создание символических ссылок при создании сайта. По умолчанию использовать Rails logi c может быть проще, так как это выглядело бы в папке sitex, sharedmethods и views; потенциальные конфликты имен, тем не менее, не за горами. c, чтобы учесть любой новый случай в этом сценарии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...