私はレールの中で次のようなことをしているメソッドを持っています:
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
問題は、追加するエンティティが増えるほど、時間がかかることです。これは、すべてのレコードについてデータベースにアクセスする必要があるためと考えられます。ネストされているため、親を保存する前に子を保存できないことはわかっていますが、一度にすべての親を保存してから、すべての子を保存したいと思います。次のようなことをするのがいいでしょう:
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)
それは、たった2つのデータベースヒットでそれをすべて行います。これをレールで行う簡単な方法はありますか、それとも一度に1つずつ行うのが難しいのですか?