Мне нужно сделать несколько массовых вставок для PostgreSQL
в ruby
. Я могу построить ruby
array
, но я не уверен, как перейти к sql syntax
. Я могу создать его синтаксически, однако мне нужно избежать некоторых вставок, которые мешают моей цитате, особенно когда она заключена в одинарные кавычки в системе двойных кавычек для string interpolation
.
Я споткнулся о PG
gem
, так как думаю, что раньше как-то использовал это, но не помню. Могу ли я передать ruby
array
на PG::TextEncoder::Array
и использовать его вместо этого? Я беспокоюсь, что значения полей не будут должным образом экранированы.
Отредактировано: найдено полурешение
enco = PG::TextEncoder::CopyRow.new
conn.copy_data "COPY my_table FROM STDIN", enco do
conn.put_copy_data ['some', 'data', 'to', 'copy']
conn.put_copy_data ['more', 'data', 'to', 'copy']
end
Я должен пройти через array
элементов и пропустить каждый внутренний элемент array
через структуру, показанную выше. Это не полное подчинение решению, но оно приводит меня туда.