【发布时间】:2012-12-01 04:38:04
【问题描述】:
我需要使用他们自己的约定和特别是 CamelCase 列和表连接到旧版 SQL Server 2000 数据库。
对于表格,它似乎很好,Rails 用小写字母询问它,数据库很好地找到它。问题在于列,因为 Rails 使用 SQL 获取它们的名称,因此无论它们的名称是什么大小写。
我正在处理 500+ 个表,其中每个表都有几十列,并且在它们上面运行了几个旧版应用程序,因此重命名这些列不是解决方案。 使用 alias_attribute 也是一种工作量太大的解决方案。
我不想在我的代码中出现一些奇怪的情况,比如 client.AccountId(看起来像 Java 代码)。
所以我的最后一个问题是:有什么办法让 Rails 处理小写方法和符号,然后在数据库处理 SQL 时使用的任何情况下使用它们? 我正在寻找任何现有的解决方案,甚至是到 ActiveRecord 的明智领域的方向,所有这些机制都在其中完成(我一直在搜索,但源代码很大......)
【问题讨论】:
-
在处理 RoR 的内部结构之前,您是否考虑过视图?如果您以编程方式创建视图,将表和列的名称从传统约定“转换”为 Rails 使用的名称,那么您可能能够仅在数据库级别完成工作。
-
这可能是一个解决方案,但仍然需要编写大量代码
-
你使用哪些 gem 来访问 sql server?
-
activerecord-jdbc-adapter 和 jdbc-jtds(我也在使用 JRuby fwi)
标签: ruby-on-rails ruby database ruby-on-rails-3 activerecord