1

Существует две таблицы, группы и группы_иерархии. группы имеют стандартную информацию о группе, а group_hierarchy имеет два столбца (родительский, дочерний), которые перечисляют идентификатор родительской группы и идентификатор дочерней группы. Это означает, что дочерняя группа является подгруппой родительской группы. Я пытаюсь выяснить, какие ассоциации будут в моделях GroupHierarchy и Group Data. Может кто-то помочь мне с этим?Табличные ассоциации в Ruby on Rails

Группа может иметь много подгрупп, и она может быть подгруппой многих других групп. Я полагал, что это будет has_many :grouphierarchies в группе и belongs_to :group в GroupHierarchy, но это не сработало ... вещь GroupHierarchy технически относится к 2 группам.

Благодаря

+0

Двунаправленные самореферентные отношения Has-and-belongs-to-many могут работать здесь. См. Http://www.ruby-forum.com/topic/119583 –

+0

Спасибо за информацию, я не мог заставить ее работать с этим, но, по крайней мере, это начало – Counterfly

+1

Nevermind, я действительно работал с тем, что у вас было опубликовано ... Я просто исправил ошибку, которую я имел в своем другом классе. Так что спасибо тебе. – Counterfly

ответ

0

В моей группе модели мне нужно было следующее:

class Group < ActiveRecord::Base

has_and_belongs_to_many :children, :class_name => 'Group', :join_table => 'groups_hierarchy', :foreign_key => 'parent', :association_foreign_key => 'child'

has_and_belongs_to_many :parents, :class_name => 'Group', :join_table => 'group_hierarchy', :foreign_key => 'child', :association_foreign_key => 'parent'

end

И вы на самом деле ничего в классе GroupHierarchy, который, кажется, просто выступать в качестве таблицы поддержки не нужно для обеспечения саморегуляции.

Еще раз спасибо

Смежные вопросы