我想知道是否有可能以编程方式获取类型(如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,它具有一个attr名称并返回一个列对象-该类型具有埋在基础数据库列对象中的类型,但似乎并不是一种干净的方式来获取它。
我也想知道是否有一种方法可以使新的“ ActiveModel”友好(rails3)并且与数据库详细信息分离(但是类型信息可能不是它的一部分,我似乎无法找出是不是)。
谢谢。
2.is_a? Driver.columns_hash["name"].type