Ich habe eine Methode in Schienen, die ungefähr so funktioniert:
a = Foo.new("bar")
a.save
b = Foo.new("baz")
b.save
...
x = Foo.new("123", :parent_id => a.id)
x.save
...
z = Foo.new("zxy", :parent_id => b.id)
z.save
Das Problem ist, dass dies immer länger dauert, je mehr Entitäten ich hinzufüge. Ich vermute, das liegt daran, dass es für jeden Datensatz die Datenbank treffen muss. Da sie verschachtelt sind, weiß ich, dass ich die Kinder nicht retten kann, bevor die Eltern gerettet sind, aber ich möchte alle Eltern auf einmal und dann alle Kinder auf einmal retten. Es wäre schön, so etwas zu tun:
a = Foo.new("bar")
b = Foo.new("baz")
...
saveall(a,b,...)
x = Foo.new("123", :parent_id => a.id)
...
z = Foo.new("zxy", :parent_id => b.id)
saveall(x,...,z)
Das würde alles in nur zwei Datenbanktreffern erledigen. Gibt es eine einfache Möglichkeit, dies in Schienen zu tun, oder bin ich festgefahren, es einzeln zu tun?