Ruby on Rails обновляет несколько записей в одном запросе

Привет у меня есть приложение rails, в котором я хочу создать несколько записей в одном запросе

это мой код

   inserts = []

    1000.times do
      inserts.push "user name"
    end

    inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")

    ActiveRecord::Base.connection.execute "INSERT INTO `user_dat`.`user_inserts` (`name`) VALUES #{inserts}"

Какую ошибку я получаю, это ошибка в синтаксисе mysql

INSERT INTO `batch_insert`.`batch_inserts` (`name`) VALUES (user name),(user name),(user name),(user name),(user name),(user name),(user name).... upto 1000

я знаю, что хочу это как ("имя пользователя"), ("имя пользователя"), но я не могу этого достичь, может кто-нибудь, пожалуйста, скажите мне, как я могу достичь этого формата значений

2 ответа

Решение

Если проблема заключается только в том, чтобы заключать в кавычки имена пользователей, ответом является замена строки inserts = inserts.map {|bar| "(#{bar.to_s})"}.join(",")

сinserts = inserts.map {|bar| %Q[("#{bar.to_s}")]}.join(",")

У вас есть модель для этого стола? Тогда вы можете просто использовать обычный ActiveRecord:

data = 1.upto(10000).map { |i| { name: "User #{i}" } }
User.create data
Другие вопросы по тегам