Ruby on rails 有没有办法让ActiveRecord进行多次插入

Ruby on rails 有没有办法让ActiveRecord进行多次插入,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一对多的关系,其中一个事物:有许多元素 我正在寻找一种方法来创建一个对象及其所有N个元素,而不必进行N+1查询。我试过: [loop in Thing model] self.elements.build({...}) ... self.save 但它为每个元素单独插入。此功能不是内置的 一个选项是使用,它不会消除多个INSERTs,但会在一个请求中发送所有这些,这将有助于提高某些性能。例如: ActiveRecord::Base.transaction do 1000.time

我有一对多的关系,其中一个
事物
:有许多
元素

我正在寻找一种方法来创建一个对象及其所有N个元素,而不必进行N+1查询。我试过:

[loop in Thing model]
   self.elements.build({...})
...
self.save

但它为每个元素单独插入。

此功能不是内置的

一个选项是使用,它不会消除多个
INSERT
s,但会在一个请求中发送所有这些,这将有助于提高某些性能。例如:

ActiveRecord::Base.transaction do
  1000.times { MyModel.create(options) }
end
但是,要执行真正的批量
INSERT
,您必须编写并执行原始查询,或者使用gem(以前是ar扩展的一部分)。文档中的一个示例:

books = []
10.times do |i| 
  books << Book.new(:name => "book #{i}")
end
Book.import books
books=[]
10.我做了多少次
书籍“书籍{i}”)
结束
进口书
我认为这可能是你最好的选择