Lista de tipos de modelo Rails

112

Alguém tem uma lista completa de tipos de modelo que devem ser especificados ao gerar um andaime de modelo

por exemplo

foo:string 
bar:text 
baz:boolean

etc ...

E o que esses tipos mapeiam em termos de elementos de IU padrão? Campo de texto, área de texto, botão de opção, caixa de seleção, etc ...

Gordon Potter
fonte

Respostas:

249

Os atributos são tipos SQL, portanto, os seguintes são suportados:

  • :binary
  • :boolean
  • :date
  • :datetime
  • :decimal
  • :float
  • :integer
  • :primary_key
  • :string
  • :text
  • :time
  • :timestamp

Eles estão documentados na coluna da API Active Record .

Bayard Randel
fonte
2
Seu link aumentou os tweets (acho que essa é a frase). Se você puder fazer um link para alguma documentação autêntica, isso seria um tweet, quero dizer, doce. Obrigado.
3
Acho que este pode ser um link mais preciso, agora api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/…
Randy Burgess
1
Onde: as referências se encaixam nisso? É específico do banco de dados?
Erhannis,
gostaria de acrescentar para aqueles que estão lendo no futuro que ao criar um carro de migração etc .: as referências são muito úteis para criar uma chave estrangeira car_id.
BKSpurgeon
1
e agora está aqui: api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/… - atualizei a resposta
John Bachir
47

Você pode usar os seguintes tipos de campo básicos na estrutura do modelo, todos são suportados em bancos de dados com suporte ActiveRecord sem qualquer gem extra (MySQL, PostgreSQL, SQLite):

  • :binary
  • :boolean
  • :date
  • :datetime
  • :decimal
  • :float
  • :integer
  • :primary_key
  • :string
  • :text
  • :time
  • :timestamp

No gerador de scaffold, você também pode declarar as referências estrangeiras usando o :referencestipo de campo, que adicionalmente adiciona uma belongs_toreferência no novo modelo.

Se você usa Rails 4 e PostgreSQL, pode aproveitar as vantagens destes:

  • :hstore
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address

Para mapeamento de IU (tipo de dados de estrutura de modelo -> HTML), a próxima imagem tem todos os tipos de campo básicos :

Tipos de dados Rails, mapeamento HTML de scaffolding

Edu Lomeli
fonte
Rails 5 no PostgreSQL: você pode usar add_column :table_name, :field_name, :inetcriar uma coluna para armazenar endereços IP. Veja, por exemplo. postgresqltutorial.com/postgresql-data-types
MSC