Обмен взглядами между приложениями Rails 3 - PullRequest
1 голос
/ 02 февраля 2011

Мне интересно, что вы думаете о нескольких способах достижения этой цели:

  1. Использовать символические ссылки для общих файлов

  2. Создайте гем / плагин, который предоставляет общие файлы и код

  3. Создайте веб-сервис, который извлекает представления / частичные данные из необходимого приложения и сохраняет его в кеше

Моя цель - уменьшить сложность в большом приложении.Допустим, я хочу создать онлайн-сообщество и одно приложение для работы с форумами, другое для работы с пользовательскими галереями и т. Д., А также центральное приложение, которое управляет пользователями и предоставляет общие представления для других приложений.

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

Например, скажем, макет имеет главное меню сэлемент для каждого приложения, и у каждого элемента есть подменю большого размера, поэтому я не могу просто иметь простой список пар меток и URL.

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

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

Спасибо за ваш вклад.

1 Ответ

1 голос
/ 02 февраля 2011

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

При этом, если вы настроены на использование трех приложений, я бы рекомендовал не использовать и API.API отлично подходят для передачи данных (json, xml ...) назад и вперед, но они не так хорошо подходят для представлений.Я бы порекомендовал создать плагин с общими представлениями, который можно было бы хранить в отдельном репозитории git и просто использовать в каждом из ваших приложений.Таким образом, общий код распределяется между приложениями, но все еще локально доступен для всех из них.

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