Onde posso encontrar uma lista de tipos de dados que podem ser usados no Ruby on Rails 4? Tal como
text
string
integer
float
date
Continuo aprendendo sobre os novos e adoraria ter uma lista à qual pudesse me referir facilmente.
ruby-on-rails
ruby
ruby-on-rails-4
rails-activerecord
Nicolas Raoul
fonte
fonte
Respostas:
Aqui estão todos os tipos de dados do Rails 4 (migração do ActiveRecord):
:binary
:boolean
:date
:datetime
:decimal
:float
:integer
:bigint
:primary_key
:references
:string
:text
:time
:timestamp
Fonte: http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column
São os mesmos do Rails 3 .
Se você usa o PostgreSQL, também pode tirar proveito destes:
:hstore
:json
:jsonb
:array
:cidr_address
:ip_address
:mac_address
Eles são armazenados como seqüências de caracteres se você executar seu aplicativo com um banco de dados não PostgreSQL.
Editar, 19 de setembro de 2016:
Há muito mais tipos de dados específicos do postgres no Rails 4 e ainda mais no Rails 5.
fonte
text
tipo de dados. No entanto, os trilhos ainda podem lidar com isso? O que se passa em segundo plano?nil
em um banco de dados não-postgres. Você pode inspecionar o tipo no console comModel.columns_hash["column_name"].type
. Estas são apenas as coisas que eu encontrei ao usar: tipo de coluna json, posso estar errado e isso pode não acontecer com todo mundo, mas pensei em avisar futuros leitores caso tenham problemas. Independentemente disso, marque +1 nesta resposta porque realmente me ajudou.Você também pode achar útil saber em geral para que esses tipos de dados são usados:
:string
- é para pequenos tipos de dados, como um título. ( Você deve escolher string ou texto? ):text
- é para dados mais longos de texto, como um parágrafo de informações:binary
- é para armazenar dados como imagens, áudio ou filmes.:boolean
- é para armazenar valores verdadeiros ou falsos.:date
- armazene apenas a data:datetime
- armazene a data e hora em uma coluna.:time
- é apenas por tempo:timestamp
- para armazenar data e hora em uma coluna ( qual é a diferença entre datetime e timestamp? ):decimal
- é para decimais ( exemplo de como usar decimais ).:float
- é para decimais. ( Qual é a diferença entre decimal e float? ):integer
- é para números inteiros.:primary_key
- chave exclusiva que pode identificar exclusivamente cada linha em uma tabelaTambém há referências usadas para criar associações. Mas não tenho certeza se esse é um tipo de dados real .
Novos tipos de dados do Rails 4 disponíveis no PostgreSQL:
:hstore
- armazenando pares de chave / valor em um único valor ( saiba mais sobre esse novo tipo de dados ):array
- um arranjo de números ou seqüências de caracteres em uma linha específica ( saiba mais sobre isso e veja exemplos ):cidr_address
- usado para endereços de host IPv4 ou IPv6:inet_address
- usado para endereços de host IPv4 ou IPv6, o mesmo que cidr_address, mas também aceita valores com bits diferentes de zero à direita da máscara de rede:mac_address
- usado para endereços de host MACSaiba mais sobre os tipos de dados de endereço aqui e aqui .
Além disso, aqui está o guia oficial sobre migrações: http://edgeguides.rubyonrails.org/migrations.html
fonte
uuid
tipo que pode ser utilizado como campo normal comot.uuid :name...
ou como chave primária comocreate_table :users, id: :uuid do...
ou por exemplot.primary_key :id, :uuid, :default => 'uuid_generate_v1()'
ActiveRecord::ConnectionAdapters::PostgreSQL::ColumnMethods
da API para . Os destaques incluemmoney
,json
,xml
,daterange
É importante conhecer não apenas os tipos, mas também o mapeamento desses tipos para os tipos de banco de dados:
Fonte adicionada - Desenvolvimento Web Agile com Rails 4
fonte
NATIVE_DATABASE_TYPES
adaptador que precisa - github.com/rails/rails/blob/master/activerecord/lib/…Você pode acessar esta lista sempre que quiser (mesmo que não tenha acesso à Internet) através de:
fonte
O Rails4 tem alguns tipos de dados adicionados para o Postgres.
Por exemplo, o railscast # 400 nomeia dois deles:
Além disso, você também pode usar cidr, inet e macaddr. Para maiores informações:
https://blog.engineyard.com/2013/new-in-rails-4
fonte