[RUBY] [Rails] Comment utiliser enum

introduction

Comment utiliser Enum dans Ruby et Rails Un mémo à retenir.

Qu'est-ce que l'énumération?

"Enum" signifie "type d'énumération". -DB est enregistré comme type int ou type booléen, et tout nom de clé associé à la valeur numérique peut être donné. -Dans le code source, le nom de la clé associée est utilisé.

avantage -Si le type de données est défini sur entier, il sera enregistré en tant que nombre dans le DB, mais s'il ne s'agit que d'un nombre, la signification du nombre ne peut pas être partagée. -Si vous le définissez comme une chaîne de caractères, il y a une forte possibilité de taper, mais si vous utilisez enum, vous n'avez pas à vous en soucier. ・ Facile à corriger.

Méthode de définition

Vous devez définir une énumération pour votre modèle. Il y a deux manières de le définir. ** 1. Définition uniquement ** ** 2. Spécifiez une valeur numérique dans la définition **

Spécifiez uniquement la définition

Définissez avec un tableau. Ils sont liés dans l'ordre de 0 dans l'ordre de définition. Dans l'exemple ci-dessous, hier → 0, aujourd'hui → 1, demain → 2 sont automatiquement triés. nom de la colonne enum: spécifiez enum avec [: nom de la clé que vous voulez donner].

** * [] Nanoto: Faites attention à la position **

Fichier modèle


nom de la colonne enum:    [ :hier, :aujourd'hui, :demain]
↑ Que définir

Spécifiez une valeur numérique dans la définition

enum Nom de la colonne: {Nom de la clé que vous voulez ajouter: Numéro correspondant} pour spécifier enum. ** * {} et: faites attention à la position **

Fichier modèle


nom de la colonne enum:    {hier: 0,aujourd'hui: 1,demain: 2 }
↑ Que définir

Utiliser en vue

Vous pouvez créer une boîte de sélection avec la description ci-dessous. ** Le nom de colonne et les types de colonnes multiples sont la même colonne et la colonne décrite après enum ** ** Le nom du modèle est le modèle décrit au moment de la définition **

Voir la fiche


 <%= select :Nom de colonne, :name,Nom du modèle.Nom de colonne複数形.keys.to_a, include_blank: true %>

À la fin

・ Je l'ai utilisé lors du changement de statut ou lorsque le statut a été modifié en même temps. ・ En comparant avec if etc. sur le contrôleur, je pense que vous pouvez comparer avec des caractères définis au lieu de nombres Exemple) si les informations que vous souhaitez comparer == "Hier" Exemple) Informations que vous souhaitez trouver .where (nom de la colonne: "aujourd'hui") .count etc.

Recommended Posts

[Rails] Comment utiliser enum
[Rails] Comment utiliser enum
Comment utiliser la jonction de rails
[Rails] Comment utiliser la validation
[Rails] Comment utiliser authenticate_user!
[Rails] Comment utiliser Scope
[Rails] Comment utiliser la "devise" des gemmes
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Comment utiliser les messages flash
Comment utiliser Ruby on Rails
[Rails] Comment utiliser Active Storage
[Introduction aux rails] Comment utiliser le rendu
Comment utiliser le type enum Java
Comment utiliser Map
Comment écrire des rails
Comment utiliser rbenv
Comment utiliser with_option
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
[Rails] Comment utiliser ActiveRecord :: Bitemporal (BiTemporalDataModel)
[Rails] Comment utiliser la méthode de la carte
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser MySQL dans le didacticiel Rails
Comment utiliser TreeSet
Comment désinstaller Rails
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Comment utiliser le hachage
[Ruby on Rails] Comment utiliser redirect_to
[Note] Comment utiliser Rails 6 Devise + cancancan
[Rails] Enum est plus facile à utiliser! Énumélisez!
Comment utiliser Dozer.mapper
Comment utiliser Gradle
[Rails] Comment utiliser video_tag pour afficher des vidéos
[Rails] Comment utiliser la méthode d'assistance, confimartion
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser credentials.yml.enc introduit à partir de Rails 5.2
Comment utiliser Map
[Rails] Comment utiliser les boîtes de sélection dans Ransack
Comment utiliser les rails g échafaudage, fonctions, précautions
Comment utiliser JQuery dans Rails 6 js.erb
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant