Is there documentation for the Rails column types?

  • String:
    • Limited to 255 characters (depending on DBMS)
    • Use for short text fields (names, emails, etc)
  • Text:
    • Unlimited length (depending on DBMS)
    • Use for comments, blog posts, etc. General rule of thumb: if it’s captured via textarea, use Text. For input using textfields, use string.
  • Integer:
    • Whole numbers
  • Float:
    • Decimal numbers stored with floating point precision
    • Precision is fixed, which can be problematic for some calculations; generally no good for math operations due to inaccurate rounding.
  • Decimal:
    • Decimal numbers stored with precision that varies according to what is needed by your calculations; use these for math that needs to be accurate
    • See this post for examples and an in-depth explanation on the differences between floats and decimals.
  • Boolean:
    • Use to store true/false attributes (i.e. things that only have two states, like on/off)
  • Binary:
    • Use to store images, movies, and other files in their original, raw format in chunks of data called blobs
  • :primary_key
    • This datatype is a placeholder that Rails translates into whatever primary key datatype your database of choice requires (i.e. serial primary key in postgreSQL). Its use is somewhat complicated and not recommended.
    • Use model and migration constraints (like validates_uniqueness_of and add_index with the :unique => true option) instead to simulate primary key functionality on one of your own fields.
  • Date:
    • Stores only a date (year, month, day)
  • Time:
    • Stores only a time (hours, minutes, seconds)
  • DateTime:
    • Stores both date and time
  • Timestamp
    • Stores both date and time
    • Note: For the purposes of Rails, both Timestamp and DateTime mean the same thing (use either type to store both date and time). For the TL;DR description of why both exist, read the bottom paragraph.


Share and Enjoy !

0 0