Railsを使用してデータにアクセスするレガシーアプリをMS-SQLからPostgresに移動しています。
MS-SQL の列は大文字で表記され、activerecord-sql-server-adapter を使用している間は、次のように読み取られます。
var something = my_model.SomeAttribute
定数ですが、アプリは MSSQL データベースからのみデータを読み取るため、問題にはなりません。
私が今抱えている問題は、postgresに移行した後、すべての列名などを小文字に変換することです(SQLは大文字と小文字を区別するものではないため)。モデルにアクセスしようとすると、小文字になったのでSomeAttribute
an が発生します。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 を取得する方法はありますか?