Работа с ActiveRecord и столбцами с апострофами - PullRequest
0 голосов
/ 04 января 2019

У меня есть база данных, которую я не могу изменить, и она содержит имена столбцов, которые ... скажем так, глупые. Большинство из них в порядке, но у некоторых из них есть апостроф. Один из них называется "День рождения супруга".

Я могу нормально подключиться к БД, используя establish_connection, и даже могу снять Model.count. Но в тот момент, когда я пытаюсь Model.find, происходит сбой со следующей ошибкой:

/var/lib/gems/2.3.0/gems/activemodel-5.2.2/lib/active_model/attribute_methods.rb:380:in `module_eval': /var/lib/gems/2.3.0/gems/activemodel-5.2.2/lib/active_model/attribute_methods.rb:381: syntax error, unexpected tIDENTIFIER, expecting ')' (SyntaxError)
...       define_method(:'Spouse's Birthday_before_type_cast') ...
...                               ^
/var/lib/gems/2.3.0/gems/activemodel-5.2.2/lib/active_model/attribute_methods.rb:382: syntax error, unexpected tIDENTIFIER, expecting end-of-input
          attribute_before_type_cast("Spouse's Birthday", *args)

Сообщение об ошибке довольно простое; апостроф в названии колонки разрушает все. Мне нужен способ избежать этого или передать establish_connection что-то, что может сопоставить существующие имена столбцов с именами, которые я бы предпочел использовать.

...