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.
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.
More PostgreSQL data types
text
data type. Yet, rails can still handle it? What goes on in the background? –
Weeks nil
in a non-postgres database. You can inspect the type in the console with Model.columns_hash["column_name"].type
. These are just things that I've run into when using :json column type, I may be wrong and this may not happen to everyone but I thought I'd let future readers know in case they have troubles. Regardless, +1 for this answer because it really helped me. –
Pukka :jsonb
. Difference is here: "The json data type stores an exact copy of the input text, which processing functions must reparse on each execution; while jsonb data is stored in a decomposed binary format that makes it slightly slower to input due to added conversion overhead, but significantly faster to process, since no reparsing is needed. jsonb also supports indexing, which can be a significant advantage." postgresql.org/docs/9.4/static/datatype-json.html –
Western :bigint
type –
Toast 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 tableThere'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 addressesLearn more about the address datatypes here and here.
Also, here's the official guide on migrations: http://edgeguides.rubyonrails.org/migrations.html
uuid
type which can be used as normal field like t.uuid :name...
or as primary key like create_table :users, id: :uuid do...
or e.g. t.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
–
Excrescent ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Highlights include money
, json
, xml
, daterange
–
Matthieu 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
NATIVE_DATABASE_TYPES
for the adapter you need - github.com/rails/rails/blob/master/activerecord/lib/… –
Pyrosis date
and datetime
are mapped to date
for oracle database. How does active record determine to which data type it should map when fetching? –
Empirical You can access this list everytime you want (even if you don't have Internet access) through:
rails generate model -h
Rails4 has some added datatypes for Postgres.
For example, railscast #400 names two of them:
Rails 4 has support for native datatypes in Postgres and we’ll show two of these here, although a lot more are supported: array and hstore. We can store arrays in a string-type column and specify the type for hstore.
Besides, you can also use cidr, inet and macaddr. For more information:
© 2022 - 2024 — McMap. All rights reserved.