Мне нужно получить доступ к устаревшей реляционной базе данных через ActiveRecord, и эта база данных использует столбец с именем «object_id» в качестве первичного ключа в таблице. Большинство вещей работает, но когда я пытаюсь указать пользовательский запрос SQL для ассоциации (см. Ниже) ActiveRecord, соответственно, интерпретатор Ruby всегда получает object_id базового объекта "Ruby" вместо значения столбца из базы данных.
Я определил следующий запрос SQL в объявлении has_many:
: finder_sql => "SELECT * FROM t_object, ГДЕ object_id IN (SELECT end_object_id FROM t_object, t_connector WHERE t_object.object_id = # {object_id} И start_object_id = # {object_id})
Я уже пытался решить эту проблему, работая с псевдонимом:
alias_attribute: my_oid,: object_id
и использование «my_oid» в запросе SQL. Но я получил следующее сообщение об ошибке:
NameError: неопределенная локальная переменная или метод my_oid для EaTObject (таблица не существует): Класс
Я также определил метод, который возвращает значение read_attribute ("object_id") и поместил имя метода в запрос SQL вместо "object_id", но когда класс был загружен, я получил сообщение об ошибке, что это имя метода не является имя столбца в таблице базы данных.
Есть ли какое-либо решение для доступа к столбцу с именем "object_id"?