Эта возможность не встроена.
Одним из вариантов является использование транзакции , которая не устранит несколько INSERT
с, но отправит их все в одном запросе, что поможет с производительностью. Например:
ActiveRecord::Base.transaction do
1000.times { MyModel.create(options) }
end
Тем не менее, чтобы получить истинную массу INSERT
, вам придется либо написать и выполнить необработанный запрос, либо использовать гем, такой как activerecord-import (ранее являвшийся частью ar-extensions) , Пример из документации:
books = []
10.times do |i|
books << Book.new(:name => "book #{i}")
end
Book.import books
Я думаю, что это может быть лучшим вариантом для вас.