[RUBY] Insérer des données dans la base de données à l'aide du fichier Yaml

1) Arrière-plan </ font>

Les fichiers Yaml sont souvent utilisés pour les paramètres d'environnement, mais les fichiers yaml sont plus pratiques que les fichiers csv lorsque vous souhaitez enregistrer les données par défaut dans la base de données à l'avance.

Si vous créez un portfolio comme moi, vous devez définir les exemples de données sans en avoir conscience. Je pense que yaml apparaît dans la scène où il n'est pas écrit dans le source, csv n'est pas lisible, etc.

2) Environnement </ font>

article Contenu
OS.Catalina v10.15.4
Ruby v2.5.1
Ruby On Rails v5.2.4.3

3) Contenu </ font>

** Correspondance 1) Création d'un fichier yaml ** Vous pouvez définir des paramètres détaillés. Je vais l'omettre ici. Voir l'image des données ci-dessous.

default_user.yml


- id: 1,
  password: 111111
  name: 'Utilisateur non enregistré'
  email: '[email protected]'

** Correspondance 2) Créez un service qui lit et affiche yaml ** C'est un peu long, mais j'ai créé le service comme suit. L'extension est requise avec require ('yaml').

user_insert_service.rb


 1 class MakeDefaultDataService
 2   require('yaml')
(réduction)

 3   def insert_user_data
 4     begin
 5       default_user = User.new
 6       insert_data = YAML.load_file('app/lib/yaml/default_user.yml')
 7       insert_data.each do | data |
 8         default_user.id = data["id"]
 9         default_user.password = data["password"]
10         default_user.name = data["name"]
11       end
12       default_user.save
13     rescue
14       p "(Utilisateur) Échec de l'enregistrement des données."
15     end
16   end

Lorsque cette méthode est exécutée, les données sont définies dans la variable "insert_data" sur la 4ème ligne comme suit.

[{"id"=>1, "password"=>111111, "name"=>"Utilisateur non enregistré", "email"=>"[email protected]"}]

Tout ce que vous avez à faire est de traiter les données comme il convient et de les placer dans la base de données. C'est pratique. c'est tout.