Я пытаюсь построить схему вокруг концепции компании.Self-referential has_many и принадлежит_от отношениям
Компания может иметь материнскую компанию (то есть конгломерат). В компании также может быть несколько дочерних компаний. Но компания также может быть автономной и не имеет ни дочерних компаний, ни материнской компании. У меня возникли проблемы, обертывая голову вокруг того, как моделировать это с помощью ActiveRecord. Вот что у меня есть:
class Company < ActiveRecord::Base
validates_uniqueness_of :company_id
has_many :products
has_many :subsidiaries, :class_name => "Company", optional: true
belongs_to :parent_company, :class_name => "Company", optional: true
end
В идеале, я хотел бы быть в состоянии проверить company.subsidiaries
, если она равна нулю, я знаю, что эта компания не имеет дочерних компаний.
Любая помощь в определении правильного пути построения этих отношений была бы очень признательна!
Нет, я думаю, что я могу использовать. Я читал документы и кажется, что это хорошее решение, но мне интересно, есть ли простое решение, которое не использует никаких дополнительных драгоценных камней. На данный момент я продолжу изучение вашего предложения. –
Сделал быстрый поиск, поскольку я думал, что сделал это, но эта старая память! Я использовал action_as_tree gem, если это поможет. –
Как говорит Эндрю Лэнк, есть также act_as_tree, который раньше был ядром Rails, но был перемещен в драгоценный камень как часть движения жесткой экономии. Использование драгоценного камня, защищенного версией, - это безопасная ставка. – tadman