Отключить двойное подчеркивание для сиквела
Как отключить двойное подчеркивание для сиквела?
Я работаю со старой схемой базы данных, где у меня много столбцов с именем "__".
db[:abc].insert({vector_a__c: "356"})
Sequel::DatabaseError: PG::UndefinedColumn: ERROR: column "vector_a" of relation "abc" does not exist
LINE 1: INSERT INTO "abc" ("vector_a"."c") VALUES ('356') RETURNING ...
2 ответа
Решение
В общем, вы хотите обернуть его в идентификатор:
db[:abc].insert(Sequel.identifier(:vector_a__c) => "356")
Использование строки в качестве идентификатора работает только в очень немногих случаях для обратной совместимости, где она недвусмысленна (т. Е. Где строка SQL недопустима).
Отключение двойного подчеркивания при передаче имен столбцов в виде строки, но не в виде символа.
Например:
db[:abc].insert({"vector_a__c" => "356"})