Tôi có một phương thức trong rails đang làm một cái gì đó như thế này:
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
Vấn đề là điều này mất nhiều thời gian hơn và lâu hơn khi tôi thêm nhiều thực thể. Tôi nghi ngờ điều này là do nó phải truy cập vào cơ sở dữ liệu cho mọi bản ghi. Vì chúng lồng vào nhau nên tôi biết mình không thể cứu lũ trẻ trước khi cứu được bố mẹ, nhưng tôi muốn cứu tất cả bố mẹ cùng một lúc, và sau đó là tất cả những đứa trẻ. Sẽ rất tuyệt nếu làm điều gì đó như:
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)
Điều đó sẽ làm tất cả chỉ trong hai lần truy cập cơ sở dữ liệu. Có cách nào dễ dàng để thực hiện việc này trong đường ray không, hay tôi đang gặp khó khăn khi làm từng cái một?