Даже без экземпляра модели вы можете использовать Model.columns_hash
, который является хешем столбцов модели, введенных в имя атрибута, например,
User.columns_hash['name'].type # => :string
User.columns_hash['id'].type # => :integer
User.columns_hash['created_at'].type # => :datetime
Обновление
Как прокомментировал Кевин , если у вас есть экземпляр модели (например, @user
), то можно использовать метод column_for_attribute
, например
@user.column_for_attribute(:name) # => :string
Из документов Rails API вы можете видеть, что это просто оболочка, которая вызывает columns_hash
для класса экземпляра:
def column_for_attribute(name)
self.class.columns_hash[name.to_s]
end