我在 Rail 中有一个方法,它是这样做的:
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)
只需要两个数据库就能完成。有没有一个简单的方法可以在轨道上做到这一点,还是我只能一次做一个?