Можем ли мы вставить несколько строк в одном запросе в Ruby on Rails ActiveRecord? - PullRequest
0 голосов
/ 27 июня 2018

Привет ниже в данном сценарии

 some_model_id = [1, 2, 3, 4]
 some_model_id.each do |some_id|
   SomeOtherModel.create(some_column: some_id)
 end

Здесь insert запрос будет выполняться n раз в зависимости от some_model_id размера

Есть ли способ, которым я могу сделать это в одном запросе на каком-то другом, более подходящем подходе, чем этот.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

ActiveRecord create также может принимать массив операторов вставки, который будет формулировать только один объект ActiveRecord, но при этом он будет выполнять несколько операторов вставки в базе данных. См. Следующий код

SomeOtherModel.create([{some_column: some_id}, {some_column: some_id}, {some_column:some_id}])

Чтобы вставить несколько записей одновременно, лучше использовать необработанную команду вставки SQL с несколькими значениями.

0 голосов
/ 27 июня 2018

check activerecord-import gem, он позволяет вставлять оптом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...