Привет, ребята, у меня есть модель прямой трансляции, которая имеет две колонки в базе данных, 'user_id' и 'activity_id'. Очень прямо вперед.
Теперь, когда я пытаюсь вставить несколько записей в базу данных, я получаю недопустимый оператор SQL:
SQLite3::SQLException: near ",": syntax error: INSERT INTO livestreams (user_id, activity_id)
VALUES (1, 2), (101, 2)
Код, используемый для этого, взят из инсоши и выглядит следующим образом:
def do_livestream_insert(users_ids, activity_id)
sql = %(INSERT INTO livestreams (user_id, activity_id)
VALUES #{values(users_ids, activity_id)})
ActiveRecord::Base.connection.execute(sql)
end
def values(ids, common_value)
common_values = [common_value] * ids.length
convert_to_sql(ids.zip(common_values))
end
def convert_to_sql(array_of_values)
array_of_values.inspect[1...-1].gsub('[', '(').gsub(']', ')')
end
Почему рельсы это делают? Разве SQLlite не поддерживает вставку нескольких записей одновременно?
Я сбросил базу данных и снова заполнил ее.
Спасибо за вашу помощь, высоко ценится.
Хорошего дня,
Stefano