Рекурсивная модель в Rails - PullRequest
4 голосов
/ 24 августа 2009

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

Так это возможно, или мне нужно творить магию?

Ответы [ 3 ]

6 голосов
/ 24 августа 2009

Вы можете использовать как плагин для дерева или создать его самостоятельно:

belongs_to                :parent,
                          :foreign_key => "parent_id",
                          :class_name => "Item"

has_many                  :children,
                          :foreign_key => 'parent_id',
                          :class_name => 'Item',
                          :order => 'created_at ASC',
                          :dependent => :delete_all
0 голосов
/ 24 августа 2009

Вероятно, есть несколько встроенных в AR библиотек или плагинов / библиотек libs для обработки большинства не причудливых вариантов использования, но: неясно, если вы говорите о

  • объединение таблиц / сопоставление записей Actve, (неоднородные отношения, 2 или три таблицы)
  • вложенный набор / act_as_tree, (дерево похожих объектов в одной таблице) или
  • Наследование одной таблицы, несколько неоднородных объектов в одной таблице

или, самое грязное, - Дизайн таблицы значений атрибутов (EAV)

http://en.wikipedia.org/wiki/Entity-Attribute-Value_model

0 голосов
/ 24 августа 2009
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...