J'ai une méthode dans les rails qui fait quelque chose comme ceci:
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
Le problème est que cela prend de plus en plus d'entités. Je soupçonne que c'est parce qu'il doit frapper la base de données pour chaque enregistrement. Puisqu'ils sont imbriqués, je sais que je ne peux pas sauver les enfants avant que les parents ne soient sauvés, mais j'aimerais sauver tous les parents à la fois, puis tous les enfants. Ce serait bien de faire quelque chose comme:
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)
Cela ferait tout cela en seulement deux hits de base de données. Existe-t-il un moyen simple de le faire dans les rails, ou suis-je obligé de le faire un à la fois?