2009-08-25 4 views
0

Я разработал приложение для рельсов для школьного выпускника. Теперь другая школа хочет, чтобы я разработал для них подобный сайт.Как повторно использовать приложение для рельсов

Я хочу повторно использовать приложение. Структура данных будет такой же, но фактические данные будут разными. Макет дизайна будет похож, но сам дизайн будет другим.

Один из вариантов заключается в том, что я просто копирую приложение и изменяю его. Но в этом случае мне нужно управлять 2 приложениями по мере их развития.

Другой вариант - сделать приложение обобщенным и настраиваемым (база данных будет разделена, хотя). В представлениях будет много много ветвей.

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

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

У вас есть опыт работы с таким делом? Если да, можете ли вы поделиться им со мной?

Спасибо.

Sam

+0

Удостоверьтесь, что вы четко понимаете законность копирования кода, который вы написали для кого-то другого, в зависимости от законов вашего языка. – EBGreen

+0

Спасибо за предупреждение. Однако это не проблема. –

ответ

0

2 приложения будут обмениваться:

Модели Помощники Контроллеры

Они не будут делиться:

Просмотров

Я не уверен в БД.

Я могу разделить взгляды, используя концепцию кожи, как:

приложение/просмотров/App1/...

приложение/просмотров/app2/...

Я все еще думаю о базе данных.

0

Вы будете удивлены, как далеко вы можете получить различные стили, макеты и разумном использовании локализации.

1

Если есть какой-либо способ избежать сложности разметки кода в двух отдельных приложениях, вы должны это сделать.

Создание приложения, обобщающего и настраиваемого, поскольку вы предлагаете перемещать свой проект в нечто более близкое к автономному продукту (что может быть более выгодным).

2

Это может быть немного неортодоксальные, но если вы используете Git, вы можете создать две ветви

  1. один для сайта школы выпускников
  2. один за аналогичный сайт

Корневой код останется в главной ветви. Ваш поток развития будет тогда:

  • ответвляется мастер
  • редактируйте
  • тянуть редактирует в мастер, когда удовлетворены
  • тянуть мастер изменение в ветви.

Вы можете продолжать локально изменять ветви по мере необходимости, но вам нужно быть осторожным в том, чтобы вводить конфликтующие изменения между мастером/веткой.

+0

Я никогда не думал об этом. Отличная идея. Я сомневаюсь, что я сделаю это именно так. –

0

Я использую подмодули git и символические ссылки. В общем проекте есть подмодуль в Rails.root/shared. Затем есть символические ссылки от app/models до shared/app/models и т. Д.

Смежные вопросы