我正在将传统应用程序从MS-SQL移动到使用Rails访问数据的Postgres。ActiveRecord/ActiveModel属性区分大小写
在MS-SQL的列被资本化,而使用ActiveRecord-SQL服务器适配器,他们是这样写的:
var something = my_model.SomeAttribute
即使是恒定的,它不会出现因为应用程序只从MSSQL数据库读取数据。
我现在遇到的问题是在转移到postgres之后,它将所有列名等转换为小写(因为SQL不是区分大小写的)。现在,当我尝试访问我的模型中的SomeAttribute
时,由于它现在是小写字母,因此会产生ActiveModel::MissingAttributeError
。
症状的一些例子:
p.SomeAttribute
=> ActiveModel::MissingAttributeError: missing attribute: SomeAttribute
p.read_attribute(:SomeAttribute)
=> nil
p.has_attribute?(:SomeAttribute)
=> false
p.read_attribute(:someattribute)
=> 'expected value'
有一些方法可以让我得到的ActiveRecord /加载ActiveModel试图检索他们之前的属性名称转换为小写?
你有没有想过这个? – Altonymous 2013-04-17 16:46:24