プログラムでタイプを取得できるかどうかを知りたいです(ARで知られているように-たとえば、移行スクリプトとデータベースで)(データがどこかに存在することは知っています)。
たとえば、すべての属性名を処理できます。
ar.attribute_names.each { |name| puts name }
.attributes は、名前の現在の値へのマッピングを返すだけです (たとえば、フィールドが設定されていない場合、型情報はありません)。
タイプ情報で見たいくつかの場所:
スクリプト/コンソールで、AR エンティティの名前を入力します。
>> Driver
=> Driver(id: integer, name: string, created_at: datetime, updated_at: datetime)
明らかに、それはタイプを知っています。また、属性名を取り、列オブジェクトを返す .column_for_attribute もあります。これは、基礎となるデータベースの列オブジェクトに埋め込まれた型を持っていますが、それを取得するためのクリーンな方法ではないようです。
来る新しい「ActiveModel」(rails3)にやさしく、データベースの詳細から切り離された方法があるかどうかにも興味があります(ただし、おそらく型情報はその一部ではないでしょう。かどうか調べてください)。
ありがとう。