我在rails中有一个方法,它可以做这样的事情:
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)
这一切只需点击两次数据库即可实现.在rails中有没有一种简单的方法可以做到这一点,还是我一次只能做一个?