Rails 4: Lista de tipos de datos disponibles


¿Dónde puedo encontrar una lista de tipos de datos que se pueden utilizar en Ruby on Rails 4? Tales como

  • text
  • string
  • integer
  • float
  • date

Sigo aprendiendo sobre nuevos y me encantaría tener una lista a la que pueda referirme fácilmente.

Author: Flip, 2013-07-29

5 answers

Aquí están todos los tipos de datos de Rails 4 (ActiveRecord migration):

  • :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 lo mismo 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.

Editar, 2016-Sep-19:

Hay muchos más tipos de datos específicos de postgres en Rails 4 y incluso más en Rails 5.

 593
Author: Nicolas Raoul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:50

También puede ser útil saber en general para qué se utilizan estos tipos de datos:

También hay referencias utilizadas para crear asociaciones. Pero, No estoy seguro de que este sea un tipo de datos real.

Nuevos tipos de datos Rails 4 disponibles en PostgreSQL:

  • :hstore - almacenamiento de 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 en particular (obtenga más información al respecto 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 MAC

Obtenga más información sobre los tipos de datos de direcciones aquíy aquí.

Además, aquí está la guía oficial sobre migraciones: http://edgeguides.rubyonrails.org/migrations.html

 223
Author: lflores,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:27

Es importante conocer no solo los tipos, sino también la asignación de estos tipos a los tipos de base de datos:

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí


Fuente añadida - Desarrollo web ágil con Rails 4

 145
Author: gotqn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-15 17:44:05

Puede acceder a esta lista cada vez que desee (incluso si no tiene acceso a Internet) a través de:

rails generate model -h
 72
Author: tomascharad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-07 13:43:30

Rails4 tiene algunos tipos de datos añadidos para Postgres.

Por ejemplo, railscast # 400 nombra dos de ellos:

Rails 4 tiene soporte para tipos de datos nativos en Postgres y mostraremos dos de estos aquí, aunque muchos más son soportados: array y hstore. Podemos almacenar matrices en una columna de tipo string y especificar el tipo para hstore.

Además, también puede usar cidr, inet y macaddr. Para más información:

Https://blog.engineyard.com/2013/new-in-rails-4

 5
Author: Peter de Ridder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-29 07:26:27