Eu tenho um método em trilhos que está fazendo algo assim:
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
O problema é que isso leva mais e mais tempo quanto mais entidades eu adiciono. Suspeito que seja porque ele precisa acessar o banco de dados para cada registro. Como eles estão aninhados, sei que não posso salvar os filhos antes que os pais sejam salvos, mas gostaria de salvar todos os pais de uma vez e, em seguida, todos os filhos. Seria bom fazer algo como:
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)
Isso faria tudo em apenas dois acessos ao banco de dados. Existe uma maneira fácil de fazer isso em trilhos ou estou preso fazendo um de cada vez?