(Rails) Is there a way to check the field's datatype?

前端 未结 2 1211

How do you check what the datatype is for something that was retrieved from the database?

For example, if I have some instantiation of a model @model with a database

相关标签:
2条回答
  • 2021-01-07 18:34

    Try this:

    @model.column_for_attribute('title').type
    

    Should return :string, :text, :integer, etc.

    The ActiveRecord Column class also includes a number of other attributes: default, limit, name, null, precision, primary, scale, sql_type, type.

    0 讨论(0)
  • 2021-01-07 18:45

    In Rails 3, for my model "Firm", I'd use Firm.columns_hash.

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

    If you want to iterate through them, you'd do something like this:

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

    which will output the following:

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

    and so on.

    0 讨论(0)
提交回复
热议问题