модели rails для адресных книг (компания, лицо, адрес)

#ruby-on-rails #relationship #addressbook

#ruby-on-rails #взаимосвязь #адресная книга

Вопрос:

Я хочу создать набор моделей, похожих на адресную книгу, Для представления компании, человека, местоположения и т.д. Это выглядит как очень типичная адресная книга, интересно, сделал ли кто-нибудь это уже с ruby на rails 3. Вопрос возник не (только) из-за моей лени, но и потому, что подход «наилучшей практики» обычно хорошо разработан, имеет меньше подводных камней и т.д. В настоящее время я думаю о следующих моделях / полях:

Компания:

  • Имя

  • has_many :лица

  • has_many : местоположения

  • has_many :urls, :through => :urlcatalog

    причиной наличия каталога URL является возможность присваивать заметки URL

Человек:

  • имя может быть разделено на первое-среднее-последнее

  • телефон

  • has_one : местоположение

  • has_many :электронные письма :через => :каталог электронных писем

    причина наличия каталога электронной почты та же, что и выше: ему можно присвоить ярлыки «private», «office». многие телефоны также могут быть организованы таким образом.

Расположение

  • адрес необязательно

  • has_one :город

  • has_one :страна

    город или страна должны присутствовать

Город

  • Имя
  • has_one :страна

Страна

  • Имя

любые комментарии по этой концепции, мысли, рабочие примеры и т.д. приветствуются!

Ответ №1:

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

Хороший пример в RailsWiki

Комментарии:

1. спасибо, в реальном приложении я буду часто использовать полиморфный. в настоящее время меня больше интересует общий дизайн такого набора моделей…