ActiveRecord> MySQL Adapter> Чувствительность к регистру - PullRequest
2 голосов
/ 28 сентября 2010

Я работаю с базой данных MySQL, в которой имена таблиц / полей с большой буквы, такие как «Пользователи», «Учреждения» и т. Д. Поскольку операционной системой узла базы данных является Linux, идентификаторы (например, имена таблиц) обрабатываются с учетом регистра. Таким образом, невозможность использования заглавных букв в имени таблицы приведет к тому, что в таблице не существует ошибки.

Проблема, которую я пытаюсь решить, состоит в том, что ActiveRecord всегда создает идентификаторы в нижнем регистре. Так, например, если использовать метод «find» для извлечения первой записи из таблицы Institution, результирующий SQL будет выглядеть так:

SELECT `institutions`.* FROM `institutions` LIMIT 1

Это, конечно, приводит к ошибке MySQL в среде Linux, поскольку она не чувствительна к регистру.

Есть мысли о том, как можно обойти эту проблему?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 28 сентября 2010
class Mouse < ActiveRecord::Base
  set_table_name "Meece"
end

Думаю, ты должен очистить тебя.

1 голос
/ 28 сентября 2010

Rails использует соглашение по конфигурации , чтобы определить имя таблицы из модели.

Но вы всегда можете настроить значение по умолчанию, чтобы оно соответствовало вашим устаревшим базам данных.Посмотрите здесь:

http://book.opensourceproject.org.cn/lamp/ruby/railscook/opensource/0596527314/i_0596527314_chp_3_sect_20.html

и здесь:

http://railsapi.com/doc/rails-v3.0.0/classes/ActiveRecord/Base.html#M001129

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...