我正在將傳統應用程序從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