¿Dónde puedo encontrar una lista de tipos de datos que se pueden usar en Ruby on Rails 4? Como
text
string
integer
float
date
Sigo aprendiendo sobre nuevos y me encantaría tener una lista a la que pueda referirme fácilmente.
ruby-on-rails
ruby
ruby-on-rails-4
rails-activerecord
Nicolas Raoul
fuente
fuente
Respuestas:
Aquí están todos los tipos de datos Rails 4 (migración ActiveRecord):
:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:bigint
:primary_key
:references
:string
:text
:time
:timestamp
Fuente: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
Estos son los mismos que con Rails 3 .
Si usa PostgreSQL, también puede aprovechar estos:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Se almacenan como cadenas si ejecuta su aplicación con una base de datos no PostgreSQL.
Edición, 19 de septiembre de 2016:
Hay muchos más tipos de datos específicos de postgres en Rails 4 e incluso más en Rails 5.
fuente
text
tipo de datos. ¿Sin embargo, los rieles aún pueden manejarlo? ¿Qué sucede en el fondo?nil
en una base de datos no postgres. Puede inspeccionar el tipo en la consola conModel.columns_hash["column_name"].type
. Estas son solo cosas con las que me he encontrado al usar: tipo de columna json, puedo estar equivocado y esto puede no sucederle a todos, pero pensé en informar a los futuros lectores en caso de que tengan problemas. De todos modos, +1 para esta respuesta porque realmente me ayudó.También puede resultarle útil saber en general para qué se utilizan estos tipos de datos:
:string
- es para tipos de datos pequeños, como un título. ( ¿Debería elegir una cadena o texto? ):text
- es para datos textuales más largos, como un párrafo de información:binary
- es para almacenar datos como imágenes, audio o películas.:boolean
- es para almacenar valores verdaderos o falsos.:date
- almacenar solo la fecha:datetime
- Almacenar la fecha y la hora en una columna.:time
- es solo por tiempo:timestamp
- para almacenar la fecha y la hora en una columna. ( ¿Cuál es la diferencia entre datetime y timestamp? ):decimal
- es para decimales ( ejemplo de cómo usar decimales ).:float
- Es para decimales. ( ¿Cuál es la diferencia entre decimal y flotante? ):integer
- Es para números enteros.:primary_key
- clave única que puede identificar de forma única cada fila en una tablaTambién hay referencias utilizadas para crear asociaciones. Pero, no estoy seguro de que este sea un tipo de datos real .
Nuevos tipos de datos de Rails 4 disponibles en PostgreSQL:
:hstore
- almacenar pares clave / valor dentro de un solo valor ( obtenga más información sobre este nuevo tipo de datos ):array
- una disposición de números o cadenas en una fila particular ( aprenda más sobre esto y vea ejemplos ):cidr_address
- utilizado para direcciones de host IPv4 o IPv6:inet_address
- se usa para direcciones de host IPv4 o IPv6, igual que cidr_address pero también acepta valores con bits distintos de cero a la derecha de la máscara de red:mac_address
- utilizado para direcciones de host MACObtenga más información sobre los tipos de datos de dirección aquí y aquí .
Además, aquí está la guía oficial sobre migraciones: http://edgeguides.rubyonrails.org/migrations.html
fuente
uuid
tipo que se puede usar como campo normal comot.uuid :name...
o como clave principal comocreate_table :users, id: :uuid do...
o por ejemplot.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
. Los puntos culminantes incluyenmoney
,json
,xml
,daterange
Es importante conocer no solo los tipos, sino también la asignación de estos tipos a los tipos de bases de datos:
Fuente agregada - Desarrollo web ágil con Rails 4
fuente
NATIVE_DATABASE_TYPES
adaptador que necesita - github.com/rails/rails/blob/master/activerecord/lib/…Puede acceder a esta lista cada vez que lo desee (incluso si no tiene acceso a Internet) a través de:
fuente
Rails4 tiene algunos tipos de datos agregados para Postgres.
Por ejemplo, railscast # 400 nombra dos de ellos:
Además, también puedes usar cidr, inet y macaddr. Para más información:
https://blog.engineyard.com/2013/new-in-rails-4
fuente