Rails Active Record - 带引号的标识符 - MS Sql Server保留的表名

时间:2011-04-26 20:03:50

标签: ruby-on-rails sql-server activerecord

我有一个SQL Server 2005旧数据库,其中有一个名为 user 的表和一个映射到'user'表的模型User。

'user'是Sql Server中的保留字,所以我需要ActiveRecord来引用/括起查询中的表名

Select u.* from [user] where [user].[Id] = 1

默认为

Select u.* from user where user.[Id] = 1

由于保留字冲突而失败。

如何通知rails使用标准带引号的标识符或括号标识符来分隔表名中的保留字和/或空格?

Rails模型

class User < UserBase
  set_primary_key "Id"
  set_table_name "user"

end

class UserBase < ActiveRecord::Base
  establish_connection "tums_#{[Rails.env]}"
  self.abstract_class = true
end

1 个答案:

答案 0 :(得分:0)

这是MS Sql server的jruby activerecord jdbc适配器源中的错误。它已被修复。

https://github.com/jruby/activerecord-jdbc-adapter/issues/49