Liste des types de modèles de rails

112

Quelqu'un a-t-il une liste complète des types de modèles à spécifier lors de la génération d'un échafaudage de modèle

par exemple

foo:string 
bar:text 
baz:boolean

etc...

Et à quoi ces types correspondent-ils en termes d'éléments d'interface utilisateur par défaut? Champ de texte, zone de texte, bouton radio, case à cocher, etc.

Gordon Potter
la source

Réponses:

249

Les attributs sont des types SQL, les suivants sont donc pris en charge:

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

Ceux-ci sont documentés dans la colonne de l' API Active Record .

Bayard Randel
la source
2
Votre lien est allé tweets (je pense que c'est la phrase). Si vous pouvez créer un lien vers une documentation authentique, ce serait un tweet, je veux dire gentil. Merci.
3
Je pense que cela pourrait être un lien plus précis, maintenant api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/…
Randy Burgess
1
Où: les références s'inscrivent-elles dans cela? Est-ce spécifique à la base de données?
Erhannis
Je souhaite ajouter pour ceux qui liront à l'avenir que lors de la création d'une migration, etc., car: les références sont très utiles pour créer une clé étrangère car_id.
BKSpurgeon
1
et maintenant c'est ici: api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/… - j'ai mis à jour la réponse
John Bachir
47

Vous pouvez utiliser les types de champs de base suivants dans l'échafaudage de modèle, tous sont pris en charge dans les bases de données prises en charge par ActiveRecord sans aucune gemme supplémentaire (MySQL, PostgreSQL, SQLite):

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

Dans le générateur d'échafaudage, vous pouvez également déclarer les références étrangères à l'aide du :referencestype de champ, qui ajoute en outre une belongs_toréférence dans le nouveau modèle.

Si vous utilisez Rails 4 et PostgreSQL, vous pouvez en profiter:

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

Pour le mappage de l'interface utilisateur (type de données de l'échafaudage modèle -> HTML), l'image suivante contient tous les types de champs de base :

Types de données Rails, mappage HTML d'échafaudage

Edu Lomeli
la source
Rails 5 sur PostgreSQL: vous pouvez utiliser add_column :table_name, :field_name, :inetcreate a column pour stocker les adresses IP. Voir par exemple. postgresqltutorial.com/postgresql-data-types
MSC