自动将活动记录中的列名和表名大写

Kev*_*hes 2 sql sql-server activerecord ruby-on-rails

我正在开发一个在几个不同机构中运行的 rails 应用程序。它必须在每个数据库中与旧数据库进行交互。所有这些数据库都是 Oracle,所有的列名和表名都是小写的。

其中一家机构已将其数据库移至 MS SQL 数据库。结构都是一样的,我已经将应用程序连接到它,看起来一切正常,除了一个问题。

在 MS SQL db 上,所有表名和列名现在都为大写。

有没有办法让活动记录自动将所有对数据库的调用转换为大写?我可以在某处覆盖的方法?


所以,我想(还不能测试很多)我已经修复了列名部分。我已经基本完成了

column_names.each {|c| alias_attribute c.downcase, c}
Run Code Online (Sandbox Code Playgroud)

在每个受影响的模型中(虽然我已经把它放在一个我可以包含或不包含的模块中,这取决于适配器。

我正在尝试弄清楚如何处理可以合并到同一个模块中的表名。

Kev*_*hes 5

好的。在浪费了几个小时试图解决这个问题后,我找到了配置选项,activerecord-sqlserver-adapter它可以为您完成所有工作。只需放下:

ActiveRecord::ConnectionAdapters::SQLServerAdapter.lowercase_schema_reflection = true
Run Code Online (Sandbox Code Playgroud)

进入一个文件config/initializers,一切正常。

哦!