Отключить двойное подчеркивание для сиквела

Как отключить двойное подчеркивание для сиквела?

Я работаю со старой схемой базы данных, где у меня много столбцов с именем "__".

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"})
Другие вопросы по тегам