Я хотел бы знать, возможно ли получить типы (известные как AR - например, в миграции script и база данных) программно (я знаю, что данные существуют где-то там).
Например, я могу иметь дело со всеми именами атрибутов:
ar.attribute_names.each { |name| puts name }
.трибуты просто возвращают сопоставление имен их текущим значениям (например, информация о типе, если поле не задано).
В некоторых местах я видел информацию о типе:
в консоли script/console введите имя объекта AR:
>> Driver
=> Driver(id: integer, name: string, created_at: datetime, updated_at: datetime)
Так ясно, что он знает типы. Кроме того, существует .column_for_attribute, который принимает имя attr и возвращает объект столбца, который имеет тип, зарытый в базовом объекте столбца базы данных, но, похоже, он не является чистым способом его получения.
Мне также было бы интересно, есть ли способ, который будет дружественным для нового "ActiveModel", который идет (rails3) и отделен от спецификаций базы данных (но, возможно, тип info не будет частью этого, t, похоже, узнает, есть ли это).
Спасибо.