我想知道是否有可能以编程方式获取类型(如迁移脚本和数据库中的AR-eg所述)(我知道数据存在于其中的某个地方).
例如,我可以处理所有属性名称:
ar.attribute_names.each { |name| puts name }
.attributes只返回名称到其当前值的映射(例如,如果未设置字段,则没有类型信息).
我在一些地方看到了它的类型信息:
在脚本/控制台中,键入AR实体的名称:
>> Driver
=> Driver(id: integer, name: string, created_at: datetime, updated_at: datetime)
很明显,它知道这些类型.还有.column_for_属性,它采用attr名称并返回一个column对象,该对象的类型隐藏在底层数据库column对象中,但它似乎不是一种干净的获取方式.
我还想知道是否有一种方法对即将推出的新"ActiveModel"(rails3)友好,并且与数据库细节分离(但可能类型信息不会成为其中的一部分,我似乎无法确定它是否是).
谢谢