我想知道是否有可能以编程的方式获得类型(如在迁移脚本和数据库中的 AR-eg 所知)(我知道数据存在于其中的某个地方)。
例如,我可以处理所有属性名称:
ar.attribute_names.each { |name| puts name }
.属性只返回名称到它们当前值的映射(例如,如果没有设置字段,则不返回类型信息)。
我在一些地方看到过类型信息:
在 script/sole 中,键入 AR 实体的名称:
>> Driver
=> Driver(id: integer, name: string, created_at: datetime, updated_at: datetime)
所以很明显它知道类型。还有。Column _ for _ tribute,它接受 attr 名称并返回一个列对象——其类型隐藏在底层数据库列对象中,但似乎不是获取该类型的简单方法。
我还想知道是否有一种方法可以友好地应用即将推出的新的“ ActiveModel”(Rails3) ,并且与数据库细节分离(但是类型信息可能不是其中的一部分,我似乎无法找到它是否是)。
谢谢。