Хотите использовать приложение 1 rails для нескольких сайтов / доменов - PullRequest
6 голосов
/ 08 февраля 2010

У меня есть клиент, которому нужна та же пользовательская CMS, разработанная для примерно 5 приложений. Все приложения будут иметь «похожий», но разный внешний вид, и я бы очень хотел, чтобы это было обработано 1 приложением rails, и при необходимости просто измените макет / представления. Есть ли гем / плагин или прецедент для этого?

Ответы [ 4 ]

6 голосов
/ 09 февраля 2010

Предложение Дуга сработает, если различия между сайтами будут чисто стилевыми и статическими - например, если вы в основном просто «скиннинг». Но я буду осторожен, следуя этому подходу, если различия будут более сложными, чем это. Вы можете очень легко закончить с кошмаром обслуживания, когда вся ваша бизнес-логика будет окружена инструкциями кейсов и множеством специального кода кейса, распространяемого по вашему приложению. И вы действительно почувствуете боль, если когда-нибудь захотите разделить сайты на разные серверы или внесете значительные функциональные изменения в некоторые сайты, но не в другие.

Если вы ожидаете каких-либо существенных различий между сайтами, вы можете рассмотреть возможность их разработки в виде отдельных проектов Rails с общими компонентами. Поместите код, которым они будут делиться, в гемы или плагины и зарезервируйте отдельные проекты для атрибутов, которые они не разделяют. Для небольшого увеличения накладных расходов вы бы купили себе гораздо больше гибкости в будущем.

3 голосов
/ 08 февраля 2010

Вы можете начать с Плагин учетной записи DHH для начала, но измените его, чтобы использовать доменное имя верхнего уровня (TLD) вместо субдомена. Это очень простая библиотека, но она выполняет свою работу. Просто убедитесь, что все ваши находки в вашем приложении связаны с Account, связанным с доменным именем.

0 голосов
/ 01 февраля 2012

Ответ Paulbonner в значительной степени отражает то, о чем я думаю сам: если сайты со временем будут отличаться по функциональности - это будет кошмар для поддержки позже.

Итак, я бы, вероятно, создал несколько отдельных приложений на Rails, но я бы использовал что-то вроде Rails Cells для разработки функциональности, которая является общей для всех веб-сайтов. Затем я делю все свои ячейки во всех приложениях, используя svn: externals или эквивалент из Git.

0 голосов
/ 17 мая 2010

Я создал что-то специально для этой цели несколько лет назад. Я давно этого не трогал, но на github есть какая-то сетевая активность. Rails Multisite Plugin

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