我正在使用具有大写表/字段名称(如用户,机构等)的MySQL数据库 . 因为数据库主机的操作系统是Linux,所以标识符(如表名称)被视为区分大小写 . 因此,未能大写表名将导致表不存在错误 .
我试图解决的问题是ActiveRecord总是以小写形式构造标识符 . 因此,例如,如果使用“find”方法从Institution表中获取第一条记录,则生成的SQL将如下所示:
SELECT `institutions`.* FROM `institutions` LIMIT 1
当然,这会导致Linux环境中出现MySQL错误,因为它不区分大小写 .
关于如何解决这个问题的任何想法?
提前致谢!
2 回答
我想应该清楚你了 .
Rails使用convention over configuration从模型中确定表的名称 .
但您始终可以调整默认值以匹配旧数据库 . 看看这里:
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