Подтвердить что ты не робот

(Rails) Есть ли способ проверить полевой тип данных?

Как вы проверяете тип данных для того, что было извлечено из базы данных?

Например, если у меня есть некоторый экземпляр модели @model с полем базы данных "title", я хочу иметь возможность кодировать что-то вроде @model.title.type и возвращать "String". У Rails есть встроенные функции для этого?

4b9b3361

Ответ 1

Попробуйте следующее:

@model.column_for_attribute('title').type

Должны возвращаться :string, :text, :integer и т.д.

Класс ActiveRecord Column также включает в себя ряд других атрибутов: default, limit, name, null, precision, primary, scale, Тип sql_type, тип.

Ответ 2

В Rails 3 для моей модели "Фирма" я использовал бы Firm.columns_hash.

Firm.columns_hash["name"].type  #returns :string

Если вы хотите выполнить итерацию через них, вы сделали бы что-то вроде этого:

Firm.columns_hash.each {|k,v| puts "#{k} => #{v.type}"}

который выведет следующее:

id => integer
name => string
max_trade_qty => integer

и т.д.