Что такое ActiveRecord :: Migration и ActiveRecord :: Base для класса, который ссылается на себя. Я моделирую объект, который «вилки» от существующей записи и сохраняет это отношение в поле: source. Это: поле источника будет содержать primary_key: id его родителя.Модель отношения fork в ActiveRecord
2
A
ответ
1
ActiveRecord не включает в себя «предопределенное» отношение этого типа, но вы можете сами определить его с помощью помощников has_many
и belongs_to
. Вам нужно будет добавить внешний ключ, например. my_parent_id
модели (я буду называть его Thing
):
rails g migration AddMyParentIdToThings my_parent:references
Затем вам нужно будет определить отношение с указанием иностранного ключа и класса имен:
class Thing < ActiveRecord::Base
belongs_to :parent_thing, class_name: "Thing", foreign_key: :my_parent_id
has_many :child_things, class_name: "Thing", foreign_key: :my_parent_id
end
Вы можете опустить :foreign_key
опцию belongs_to
(неhas_many
), если внешний ключ соответствует имени отношения с добавленным "_id"
например:
belongs_to :my_parent, class_name: "Thing"
0
Когда мне приходилось делать что-то подобное, мне нравится думать об этом как о модели, которая связывает себя.
В файле миграции вы просто бы добавить parent_id
в качестве целого к этой таблице/модели
class Category < ActiveRecord::Base
belongs_to :parent, :class_name => "Category", :foreign_key => :parent_id
has_many :children, :class_name => "Category", :foreign_key => :parent_id
end
Смежные вопросы
- 1. Сложные отношения в ActiveRecord
- 2. ActiveRecord отношения
- 3. ActiveRecord custom has_one отношения
- 4. Двунаправленные отношения в ActiveRecord
- 5. Замок ActiveRecord отношения
- 6. Объединение двух ActiveRecord :: Отношения
- 7. Модель ActiveRecord с переменным числом и порядком полей как отношения
- 8. Добавление столбца в результате отношения в ActiveRecord
- 9. ActiveRecord и многие-многие отношения?
- 10. рельсы модель отношения и миграция
- 11. соблюдать отношения activerecord
- 12. Отношения с activerecord rails
- 13. модель отношения в Laravel
- 14. ActiveRecord не включая отношения
- 15. ActiveRecord отношения практика
- 16. Модель отношения сущностей: тройственные отношения
- 17. Уплотненного ActiveRecord отношения в Rails
- 18. ActiveRecord Размер отношения странное поведение
- 19. has_many отношения Rails Модель belongs_to
- 20. Rails: Мимические отношения в tableless activerecord
- 21. Необязательные отношения во многих отношениях в ActiveRecord
- 22. контекстной ActiveRecord модель фильтрация
- 23. Модель ассоциации ActiveRecord
- 24. ActiveRecord Сохранить зависимую модель
- 25. Плюрализующая модель в Rails/ActiveRecord
- 26. Rails Модель ассоциации ActiveRecord
- 27. Как моделировать множественные отношения в ActiveRecord?
- 28. убыванию модель отношения Laravel
- 29. Основная модель данных - отношения
- 30. Django модель условных отношения
Вы можете захотеть изменить 'has_many: child' в' has_many: children'. –