Каков наилучший способ реализации скинов в приложении Rails? - PullRequest
1 голос
/ 19 октября 2011

Используя Rails, я создаю несколько сайтов, которые очень похожи.Я хочу реализовать их как одно приложение Rails, отвечающее на несколько доменов, и изменить то, что представлено, и логику обработки, основанную на имени домена.Области, которые мне нужно изменить / скин для сайта:

  • Просмотры: поля на странице немного отличаются в зависимости от сайта.Некоторые сайты имеют больше / другие поля, чем другие, но есть некоторые, которые являются общими для всех
  • моделей (что, по-видимому, лучше всего сделать, определив суперкласс для основной модели, который варьируется и реализует подкальссу для каждойсайт)
  • Логика контроллера.Существует много сходства, но есть несколько небольших отличий в обработке, в том числе от того, какой подкласс Model имеет дело с
  • CSS (что кажется довольно простым)

Я уже реализовал механизм, которыйделает текущее имя домена / приложения видимым для представлений, контроллеров и моделей.

Я думал об определении частичного представления для каждого сайта и использовании логики ERB для включения правильного.Контроллеры кажутся наименее очевидной частью.

Любые предложения очень ценятся.

Приветствия, Пол

1 Ответ

0 голосов
/ 07 ноября 2011

Я реализовал нечто подобное для нашего приложения, HiringThing (http://www.hiringthing.com)

Для этого мы используем before_filter на контроллере приложения, который анализирует request.host и определяет, для какого веб-сайта запрос. Затем устанавливается переменная @site, на которую мы ссылаемся в представлениях, контроллерах и моделях для определения требований к управлению версиями во время выполнения.

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