#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. спасибо, в реальном приложении я буду часто использовать полиморфный. в настоящее время меня больше интересует общий дизайн такого набора моделей…