我在使用ActiveRecord访问MSSQL服务器上的架构的团队中工作。修改架构不是一个选项,列名称中包含空格,即SPACEY COLUMN
。
当编写ActiveRecord类来访问其中包含空格的表时,有什么好的做法?
我们还需要这个与工厂女孩一起工作......
答案 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