Предоставление объекту нескольких родителей с помощью драгоценного камня Ancestry

У меня есть объект Person с двумя родительскими Person. Я хочу иметь возможность получать массив объектов Person, когда я делаю my_person.parents (в настоящее время не определено). В настоящее время я использую драгоценный камень предков, который, кажется, ограничивает вас одним родителем. Есть ли способ сделать то, что я хочу, с драгоценным камнем, или у кого-нибудь есть другие предложения?

Спасибо


person D-Nice    schedule 01.04.2012    source источник


Ответы (2)


По сути, это отношение «многие ко многим» (человек имеет и принадлежит многим родителям). Вам нужно отношение has_and_belongs_to_many от Person к самому себе с таблицей соединений.

Пример см. здесь: Отношения ActiveRecord для таблицы соединения, связывающей две записи одной и той же таблицы?

person robinst    schedule 01.04.2012
comment
Если бы я решил пойти по этому пути, мне пришлось бы самому проводить проверку, чтобы убедиться, что нет циклических отношений и тому подобного. Я надеюсь на более быстрое решение, но спасибо за этот запасной вариант. - person D-Nice; 01.04.2012

Родословная поддерживает только 1 родителя.

Родители хранятся в строке типа

ancestry = "/grandparent_id/parent_id"

Так что есть только 1 слот для родителя. см. https://github.com/stefankroes/ancestry/issues/94

Я думаю, родословная может быть не лучшим решением для вас. Возможно, вы захотите попробовать Colsure Trees или другой плагин.

person kbrock    schedule 25.07.2016