Rails 以外の従来の命名法を持つレガシー システムを扱う。すべてのテーブルと属性は大文字であることに注意してください。これは、sqlserver-adapterID
では と同じではないことを意味しid
ます。
クエリalias_attribute :new, :OLD
で使用できる名前を指定できると思っていました。ActiveRecord/ActiveRelation
私が以下に見ているもの( でテスト済みrails console
)から、そうではありません。
ID
最終的な目標は、各モデルに属性などを持たせることにより、Rails の従来の方法論でレガシー システムを「動作」させることです。
モデル定義:
# app/models/organization.rb
class Organization < ActiveRecord::Base
self.table_name = "ORGANIZATION"
self.primary_key = "ORGANIZATION_ID"
alias_attribute :id, :ORGANIZATION_ID
end
動作しません:
Organization.select(:id)
=>invalid column name 'id'
Organization.select(:ID)
=>invalid column name 'ID'
Organization.select("ID")
=>invalid column name 'ID'
動作します:
Organization.select(:organization_id)
=><finds record>
Organization.select(:ORGANIZATION_ID)
=><finds record>
Organization.select("organization_id")
=><finds record>
Organization.select("ORGANIZATION_ID")
=><finds record>