Ассоциации иерархических объектов, belongs_to, has_many собственного класса

#ruby-on-rails #activerecord

#ruby-on-rails #activerecord

Вопрос:

Я пытаюсь заставить объекты принадлежать другим объектам того же класса, добавив parent_id атрибут к объекту, чтобы active record могла связывать их друг с другом иерархическим образом.

Я знаю, что могу просто написать метод экземпляра, чтобы выполнить поиск и получить их, но я хочу знать, есть ли более подходящий для rails способ выполнить это, так что могу ли я настроить это с помощью активных ассоциаций записей, если да, то как?

Комментарии:

1. В принципе, это звучит довольно странно. Можете ли вы показать пример, где это применимо? Вы также пробовали использовать стандартный has_many through?

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

Ответ №1:

Кажется, что этот драгоценный камень может помочь :

https://github.com/skyeagle/nested_set

или acts_as_tree:

https://github.com/rails/acts_as_tree

Ответ №2:

Существует множество способов вложения данных в базы данных. Выбор manly зависит от того, как вы собираетесь обращаться к этим данным и как часто вы собираетесь менять дерево.

Вот список текущих плагинов вложенности для rails:http://www.ruby-toolbox.com/categories/activerecord_nesting.html Обязательно просмотрите документацию по каждому из gems, чтобы выбрать наиболее подходящий для вашей ситуации.