Depuis que nous avons découvert first_or_initialize, nous allons le sortir.
Qu'est-ce que first_or_initialize? Comment utiliser first_or_initialize?
Décrivez dans l'ordre de.
Si l'enregistrement de la condition recherchée par where existe, une instance de cet enregistrement est renvoyée, et si elle n'existe pas, une nouvelle instance est créée.
C'est difficile à comprendre, non? Je vais vous expliquer en détail.
Par exemple Supposons qu'il y ait une table appelée étudiant et que les noms de 10 personnes y soient enregistrés dans la base de données.
La méthode first_or_initialize Si l'étudiant n'existe pas dans la base de données → Inscrire l'étudiant nouvellement. d'autre part, Si un étudiant est déjà inscrit → Obtenez des informations sur cet étudiant.
Avez-vous compris petit à petit?
Autrement dit, la caractéristique de cette méthode est "Évitez la duplication des données".
Alors, comment l'utilisez-vous?
student = Student.where(name: "Sato").first_or_initialize
S'il n'existe pas, définissez l'objet dont vous souhaitez créer une nouvelle instance, Après ça où (condition) .first_or_initialize Ensuite, c'est terminé.
Dans l'exemple ci-dessus Si M. Sato n'est pas dans la base de données → Enregistrez le Sato nouvellement. d'autre part, M. Sato Si vous êtes déjà inscrit → Obtenez les informations de M. Sato (identifiant défini, âge, etc.).
Recommended Posts