2010-09-27 3 views
2

Je travaille avec une base de données MySQL qui a des noms de tables/champs en majuscules comme Utilisateurs, Institutions, etc. Parce que le système d'exploitation de l'hôte est Linux, les identifiants (comme les noms de tables) sont traité comme sensible à la casse. Ainsi, si vous ne parvenez pas à mettre un nom de table en majuscule, une erreur de table n'existe pas. Le problème que j'essaie de résoudre est que ActiveRecord construit toujours des identifiants en minuscules. Ainsi, par exemple, si l'on utilise la méthode « trouver » pour saisir le premier enregistrement de la table Institution, le résultat SQL ressemblera:ActiveRecord> Adaptateur MySQL> Sensibilité à la casse

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

Ceci, bien sûr, se traduit par une erreur MySQL dans un environnement Linux parce que ce n'est pas sensible à la casse.

Avez-vous des idées sur la façon de contourner ce problème?

Merci d'avance!

Répondre

2
class Mouse < ActiveRecord::Base 
    set_table_name "Meece" 
end 

Doit vous effacer jusqu'à je pense.

1

Les rails utilisent convention over configuration pour déterminer le nom de la table à partir d'un modèle.

Mais vous pouvez toujours modifier la valeur par défaut pour correspondre à vos bases de données existantes. Jetez un coup d'oeil ici:

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

et ici:

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

+0

Merci pour ces liens fournir! C'est exactement ce que je cherchais. –

Questions connexes