У меня есть приложение, в котором есть пользователи, которыми управляет Devise. Реальные пользователи приложения будут добавлять людей как «друзей» и еще один тип, давайте будем называть их «работниками». «Друзья» и «работники», или я хотел бы, чтобы они были, все типа Пользователь, в конце дня.
Подвох в том, что пользователю необходимо иметь в системе одного человека (пользователя), который является для них как «другом», так и «работником». Также существует необходимость в недопущении дублирования пользователей по их уникальным идентификаторам, которые в этом случае будут номерами мобильных телефонов. Если данный пользователь добавляет другого пользователя в качестве «друга», а затем, например, добавляет его в качестве «рабочего», это должно быть просто какое-то объединение, а не новый пользователь в системе.
Я знаю, как бы я справился с этим в традиционном смысле, но я уверен, что есть какой-то умный способ с ИППП или полиморфными ассоциациями справиться с этим в рельсах.
Есть мысли? Стоит отметить, что у разных типов пользователей есть практически идентичные поля (или воля), связанные с ними - довольно простой идентификатор, имя, номер мобильного телефона и т. Д.
Я предполагаю, что хитрость заключается в том, что любой из пользователей должен иметь возможность иметь один или оба типа «друг» или «работник», и каждый из этих типов должен иметь возможность сочетания других два связаны с ними.