Referenzierte Objekte persistieren

Hallo,

ich sitze immer noch an der Webanwendung vom letzten Post. Ich habe
das »pre-persistieren« in der Session funktioniert. Leider funktioniert
das
persistieren nicht so ganz.
(Zur Erinnerung: Ich möchte gerne ein neues Objekt und referenzierte
Objekte,
die noch nicht persisitiert sind, sondern erstmal in der session liegen,
persistieren)
der code schaut in etwa so aus:
def create
@object = Object.new(params[:object])
@object.refer << session[:object].refer #refer ist ein Array mit noch
nicht
persisitierten, referenzierten Objekten
if (@object.safe)

dies schlägt jedoch fehl:
Konkret: Rails persistiert das Objekt - dies funktioniert
Rails persistiert das referenzierte Objekt - auch dies funktioniert.
Rails will den Eintrag in der Kreuztabelle anlegen: Dies schlegt fehl,
da
statt der ID des referenzierten Objekts, die Rails aus der
vorhergehenden
Serialisierung wissen müsste, “0” genommen wird. - Ein foreign-Key-Check
knall.
Woran kann das liegen?

Danke,
Keep smiling
yanosz

Am 12.10.2007 um 23:11 schrieb Jan L.:

Rails will den Eintrag in der Kreuztabelle anlegen: Dies schlegt
fehl, da
statt der ID des referenzierten Objekts, die Rails aus der
vorhergehenden
Serialisierung wissen müsste, “0” genommen wird. - Ein foreign-Key-
Check
knall.
Woran kann das liegen?

wenn du dein @object (muss das @ denn unbedingt sein?) mit new
erstellst hat es noch keine id, du musst also create verwenden oder
die refer erst nach dem save (sic!) zuweisen.

ciao, tom

Thomas R. “TomK32” Koll <> http://tomk32.de <> http://kampodscha.com
just a geek trying to change the world

Hallo,

Am Freitag, 12. Oktober 2007 schrieb Thomas R. Koll:

Rails persistiert das referenzierte Objekt - auch dies funktioniert.
erstellst hat es noch keine id, du musst also create verwenden oder
die refer erst nach dem save (sic!) zuweisen.

ok, ehm, also meinst du so etwas:?
@obeject = Object.new(params[:object])
if(@object.safe)
session[:object].refer.each{|r| r.save; @object.refer << r}
Dies schlägt genau so fehl…

Danke,
Keep smiling
yanosz

Am 12.10.2007 um 23:44 schrieb Jan L.:

Am Freitag, 12. Oktober 2007 schrieb Thomas R. Koll:

wenn du dein @object (muss das @ denn unbedingt sein?) mit new
erstellst hat es noch keine id, du musst also create verwenden oder
die refer erst nach dem save (sic!) zuweisen.

ok, ehm, also meinst du so etwas:?
@obeject = Object.new(params[:object])
if(@object.safe)
session[:object].refer.each{|r| r.save; @object.refer << r}
Dies schlägt genau so fehl…

Darüber dass man in der session nicht Objekte sondern nur IDs speichern
soll haben wir schon geredet, oder?
Nachdem du in deinem beispiel immer noch safe statt save schreibst
kopier bitter erstmal deinen ganz konkreten Code rein.
Am besten aber sowas wie http://pastie.caboo.se/ damit die Mailingliste
nicht immer so voll ist.

ciao, tom


Thomas R. “TomK32” Koll <> http://tomk32.de <> http://kampodscha.com
just a geek trying to change the world