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>