Возможно ли иметь a и принадлежит многим отношениям в активной записи, которые ссылаются на одну и ту же модель?Связь HABTM с самим собой?
Я хочу моделировать отношение родственных отношений.
class Child < ActiveRecord::Base
has_and_belongs_to_many :siblings
end
До сих пор я создал братьев и сестер связать таблицу:
class CreateSiblings < ActiveRecord::Migration
def change
create_table :siblings do |t|
t.integer :child1_id
t.integer :child2_id
t.timestamps
end
end
end
Но я боюсь, что это приведет ко мне писать уродливый код, чтобы получить в реальных случаях:
siblings = []
child1.siblings.each do |s|
siblings << s.child2
end
Я бы очень хотел получить массу детей, написав:
child1.siblings
Мне интересно, как мои ссылки и ассоциации моделей должны выглядеть, чтобы поддержать это?
Почувствуйте, что у меня что-то действительно очевидно.
Я нахожусь на рельсах 3.1. Спасибо за любую помощь!
Насколько я вижу, братья и сестры всегда как parent.children минус фактического ребенка, поэтому мне на первый взгляд этот дополнительный стол кажется излишнюю нагрузку. По крайней мере, пока вы не добавите дополнительных функций или информации. Вам это нужно? –
К сожалению, да, см. Мой комментарий к Ekampp. В моей модели у детей есть законные опекуны, которые они, вероятно, будут, но не всегда будут делиться со своими братьями и сестрами. – Chris