У меня есть две модели: личность и отношение. Второй хранит информацию об отношениях между двумя людьми. Он имеет поля parent_id и child_id и не имеет поля id. Я связал его с has_many: через, и он работает.
Но:
- Relation.find (: all) возвращает пустой массив, даже если в таблице есть некоторые отношения (так как поле id отсутствует).
- Я не знаю, как удалить связь.
Мои модели выглядят так:
class Person < ActiveRecord::Base
has_many :child_relations,
:class_name => "Relation",
:foreign_key => "parent_id"
has_many :parent_relations,
:class_name => "Relation",
:foreign_key => "child_id"
has_many :children, :through => :child_relations
has_many :parents, :through => :parent_relations
end
class Relation < ActiveRecord::Base
belongs_to :parent, :class_name => "Person"
belongs_to :child, :class_name => "Person"
end
Есть предложения?
ОБНОВЛЕНИЕ: я использовал has_many: через , потому что я также храню информацию о типе отношения в таблице. В настоящее время я сдался и добавил поле id в свою таблицу (соглашение Rails ...). Но мой вопрос остается открытым.