【发布时间】:2011-01-24 20:49:03
【问题描述】:
我想知道是否有可能以编程方式获取类型(如 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)友好并且与数据库细节分离(但也许类型信息不会是其中的一部分,我可以),我也会感兴趣t似乎找出是否是)。
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby activerecord activemodel