Структура приложения Rails, совет? - PullRequest
1 голос
/ 19 августа 2010

Я собираюсь начать работу над моим вторым в истории Rails-приложением и могу дать несколько советов. Возможно, мне все равно удастся набрать этот вопрос!

Цель приложения - отслеживать и контролировать маркетинговые кампании. Это делает звучание более профессиональным, чем на самом деле.

Пример использования:

  • Добавить список возможных клиентов ведет к заявке
  • Создать новую «кампанию» в приложении
  • Выберите, кто из списка потенциальных клиентов должен получить кампании
  • Если и когда будет получен ответ, тогда можно будет профиль и знак этого клиента как «положительный ответ» или «отрицательный» Ответ "и т.д ..
  • Как только кампания будет завершена, ее следует пометить как завершенную, и я смогу просматривать в профиле кампаний, кто ее получал, а также, если я просматриваю профиль клиента, я могу видеть, какие кампании были отправлены им и когда.

Это общая идея приложения. Я сделал фреймворк и отправил его на GitHub:

http://github.com/dannyweb/Marketing-Manager

Я пытаюсь понять, какие модели мне нужны, какие у них ассоциации и т. Д.

Я не уверен, стоит ли использовать что-либо, например activ_as_taggable, и назначать каждому клиенту метку, которая относится к названию кампании?

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

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

Спасибо,

Danny

1 Ответ

2 голосов
/ 19 августа 2010

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

Итак, у вас будет модель «Клиент» и модель «Кампания». Они имеют отношение N-> N (кампания может включать несколько клиентов, а клиент может быть частью нескольких кампаний).

Следовательно, вам также понадобится другая таблица, в которой будут указаны «client_id» и «campaign_id». Вы также хотите сохранить на этом столе, ответил ли клиент на него, так что ему также понадобится логический флаг «ответил». Если вы называете эту таблицу «campaign_messages», то клиенту нужно будет связываться с кампаниями, используя «has_many: campaigns: through =>: campaign_messages».

С их помощью вы сможете легко перечислить всех клиентов в кампании или всех кампаниях клиента. Вам также, вероятно, не понадобится ресурс REST для campaign_messages, только клиенты и кампании.

Это все детали, которые я собираюсь предоставить вам. Думаю, будет лучше, если вы просто последуете своему подходу и спросите, как его можно улучшить.

Приветствия и удачи

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