将ActiveRecord与列名一起使用,其中包含空格

时间:2014-03-05 18:21:54

标签: ruby sql-server activerecord jruby factory-bot

我在使用ActiveRecord访问MSSQL服务器上的架构的团队中工作。修改架构不是一个选项,列名称中包含空格,即SPACEY COLUMN

当编写ActiveRecord类来访问其中包含空格的表时,有什么好的做法?

我们还需要这个与工厂女孩一起工作......

2 个答案:

答案 0 :(得分:1)

AR-JDBC(以及AR-SQLServer-Adapter)将会/应该处理这个问题,因为它使用“[COlumn NAME]”自动神奇地引用列名称标识符...我个人会将其隐藏起来尽可能多地,例如使用别名:

class MySpacey < ActiveRecord::Base
  set_table_name 'SPACEY TABLE'
  set_primary_key 'MY ID'
  alias_attribute :id, :'MY ID'
end

答案 1 :(得分:1)

请注意,User是模型,User Name是您需要访问的列。

User.where('User Name' => 'Bob')

您还可以添加多个条件,

User.where('User Name' => 'Bob', 'Email Address' => 'sample@sample.com')

您也可以尝试

User.where('[User name] = ? AND [Email Address] = ?', 'Bob', 'sample@sample.com')

如果表本身中有空间。试试

class User < ActiveRecord::Base
  self.table_name = "user table"
end