Tabelle humans:
id - int
name - varchar(255)
Tabelle couples:
id - int
human_1_id - int
human_2_id - int
startdate - date
Die Modellklassen sehen so aus:
human.rb
has_many :couples, :finder_sql => ‘select * from couples where
human_1_id =
#{id} or human_2_id = #{id}’
In meinem Datenbeispiel gibt’s 3 Menschen
id;name
1;a
2;b
3;c
sowie 3 Pärchen
id;human_1;human_2
1;1;1
2;1;2
3;2;3
Leider schaffe ich irgendwie nicht das Zeug zu laden:
ruby script/console
Das ganze wird auch teilweise geladen.
Human.find(1),couples.each{|couple| puts couple.human_1_id} gibt die
id’s aus.
Aus irgendeinem Grund wird der Kontakt aber nicht micht geladen, d.h.
Human.find(1),couples.each{|couple| puts couple.human_1.nil} gibt true
heraus.
Wie schaffe ich es am einfachsten, die referenzierten Menschen auch zu
laden?
Bislang habe ich im each ein couple.contact_1 =
Contact.find(couple.contact_1.id) stehen.
Das finde ich aber eher umständlich.
Kommt mir auch so vor. Kannst Du mal ganz kurz umreißen, worum es
geht? Also was genau willst Du erreichen?
Das war ein Minimalbeispiel um das Problem zu veranschaulichen.
Es gibt Menschen und es gibt Paare. Wie (in jeder guten Seifen-Oper
ist
jeder Mensch Mitglied in mehreren Paaren. (d.h. wir haben ein
n:m-Mapping
zwischen Menschen, gennannt Päärchen :-))
Num möchte ich einen Menschen “bearbeiten”, d.h. mir alle seine Beziehungen
anzeigen lassen. Dazu möchte ich gerne auch ein paar Infos zu seinen
Partnern
sehen, wozu ich diese laden muss.
Das war ein Minimalbeispiel um das Problem zu veranschaulichen.
Es gibt Menschen und es gibt Paare. Wie (in jeder guten Seifen-Oper ist
jeder Mensch Mitglied in mehreren Paaren. (d.h. wir haben ein n:m-Mapping
zwischen Menschen, gennannt Päärchen :-))
Num möchte ich einen Menschen “bearbeiten”, d.h. mir alle seine Beziehungen
anzeigen lassen. Dazu möchte ich gerne auch ein paar Infos zu seinen Partnern
sehen, wozu ich diese laden muss.
habe normalerweise kein Problem mit absurder Rechtschreibung, aber
diesmal stieg sogar mein Parser aus.