Rails 4: List of available datatypes

Where can I find a list of data types that can be used in Ruby on Rails 4? Such as

  • text
  • string
  • integer
  • float
  • date
  • I keep learning about new ones and I'd love to have a list I could easily refer to.


    Here are all the Rails 4 (ActiveRecord migration) datatypes:

  • :binary
  • :boolean
  • :date
  • :datetime
  • :decimal
  • :float
  • :integer
  • :bigint
  • :primary_key
  • :references
  • :string
  • :text
  • :time
  • :timestamp
  • Source: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
    These are the same as with Rails 3.

    If you use PostgreSQL, you can also take advantage of these:

  • :hstore
  • :json
  • :jsonb
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address
  • They are stored as strings if you run your app with a not-PostgreSQL database.

    Edit, 2016-Sep-19:

    There's a lot more postgres specific datatypes in Rails 4 and even more in Rails 5.


    You might also find it useful to know generally what these data types are used for:

  • :string - is for small data types such as a title. (Should you choose string or text?)
  • :text - is for longer pieces of textual data, such as a paragraph of information
  • :binary - is for storing data such as images, audio, or movies.
  • :boolean - is for storing true or false values.
  • :date - store only the date
  • :datetime - store the date and time into a column.
  • :time - is for time only
  • :timestamp - for storing date and time into a column.(What's the difference between datetime and timestamp?)
  • :decimal - is for decimals (example of how to use decimals).
  • :float - is for decimals. (What's the difference between decimal and float?)
  • :integer - is for whole numbers.
  • :primary_key - unique key that can uniquely identify each row in a table
  • There's also references used to create associations. But, I'm not sure this is an actual data type.

    New Rails 4 datatypes available in PostgreSQL:

  • :hstore - storing key/value pairs within a single value (learn more about this new data type)
  • :array - an arrangement of numbers or strings in a particular row (learn more about it and see examples)
  • :cidr_address - used for IPv4 or IPv6 host addresses
  • :inet_address - used for IPv4 or IPv6 host addresses, same as cidr_address but it also accepts values with nonzero bits to the right of the netmask
  • :mac_address - used for MAC host addresses
  • Learn more about the address datatypes here and here.

    Also, here's the official guide on migrations: http://edgeguides.rubyonrails.org/migrations.html


    It is important to know not only the types but the mapping of these types to the database types, too:

    在这里输入图像描述

    在这里输入图像描述


    Source added - Agile Web Development with Rails 4

    链接地址: http://www.djcxy.com/p/25114.html

    上一篇: 将NOW()设置为datetime数据类型的默认值?

    下一篇: Rails 4:可用数据类型的列表