Ошибка: отсутствует метод для запроса активной записи: find_by_attribute_name ('test_data') не работает - PullRequest
0 голосов
/ 28 января 2019

I Передал данные из oracle db в mysql db и попытался получить доступ к данным через запрос Model_Name.find_by_attribute_name('test_data')

Мои таблицы имеют имя атрибута заглавными буквами.при попытке извлечь данные с именем атрибута в нижнем регистре генерируется ошибка «метод отсутствует»

EG:

имя_таблицы (Product) (ID (1), CODE («Test))

работает: Product.find_by_CODE («Тест»)

Не работает: Product.find_by_code («Тест»)

ошибка: gems/activerecord-4.0.13/lib/active_record/dynamic_matchers.rb:22:in method_missing ': неопределенный метод find_by_code' for #<Class:0x00000005fee8b8> (NoMethodError)

У меня не было проблемы с учетом регистра в oracle db.

Пожалуйста, помогите мне с этим. Заранее спасибо.

1 Ответ

0 голосов
/ 29 января 2019

Проблема в том, что CODE является зарезервированным словом в MySQL, поэтому вы не можете использовать его в качестве имени столбца: https://dev.mysql.com/doc/refman/5.5/en/keywords.html

Вам придется переименовать ваш столбец во что-то, что нене в этом списке, и все должно быть хорошо.

...