[RUBY] [Rails] Comment faire des graines

Objectif

Je vais sortir ce que j'ai appris en étudiant les semences! J'espère que cela sera utile pour ceux qui apprennent désormais les semences.

Qu'est-ce que la graine

Le fichier de départ correspond aux données initiales. Par exemple, si vous réinitialisez la base de données pendant le développement, toutes les données seront perdues. S'il disparaît à chaque fois, s'il y a une fonction d'enregistrement, il sera nécessaire de réenregistrer les données à chaque réinitialisation. C'est vraiment gênant, n'est-ce pas? Par conséquent, si vous décrivez les données que vous souhaitez mettre dans le fichier de départ dans db / seedss.rb, vous n'avez pas à les recréer une par une! !! !!

Modèle de base

Cela créera une donnée de départ pour l'utilisateur.

User.create!(email: "[email protected]",password: "password" )

Lorsque vous souhaitez créer plusieurs données de départ

Il utilise les commandes Ruby de base! Nous passons n comme argument pour que les e-mails ne soient pas les mêmes. La raison pour laquelle il est défini sur n + 1 est que s'il est uniquement n, les données commenceront à 0.

10.times do |n|
 User.create!(
   email: "user#{n+1}@example.com",
   password: "password" )
end

À propos de la création de données d'association

Par exemple, supposons que vous ayez un utilisateur et son modèle de tâche associé. En tant que données de départ, nous générerons une tâche liée au modèle utilisateur. Ensuite, vous pouvez écrire comme ci-dessous!

User.all.each do |user|
 Task.create!(
  user_id: user.id,
  title: "title",
  memo: "memo",
  color: "red",
  start_date: "2020/5/1",
  end_date: "2020/5/30" )
end

Comment lire un fichier CSV

Pour lire le fichier CSV, écrivez comme suit. La partie "db / csv / masters / init_categories.csv" change en fonction de l'endroit où vous placez le fichier.

CSV.foreach("db/csv/masters/init_categories.csv") do |row|
 @categories = Masters::Category.create!(name: row[0])
end

À propos de l'insertion d'image

Cette fois, j'ai préparé un exemple d'image sous l'application, je décrirai donc comment le faire ci-dessous. Chargez en utilisant la méthode ouverte.

User.create!(
    image: open("db/images/sample.png "),
    title: "sujet",
    overview: "Aperçu",
    link: "http://origin_job_topic_sample.com" )

Lorsque vous souhaitez saisir une valeur au hasard

Par exemple, lorsque le modèle utilisateur est décrit comme ci-dessous, lors de la création de données de départ, vous voulez un modèle qui contient les deux, n'est-ce pas? En passant, enum est une fonction qui vous permet de stocker les utilisateurs et les administrateurs numériquement.

enum user_type: {
    user: 0,
    admin: 1,
  }

Dans un tel cas, si vous écrivez comme suit, les données seront créées au hasard! Cela utilise également le style d'écriture de base de Ruby!

User.create!(
 email: "[email protected]",
 password: "password",
 status: rand(0..1) )

Résumé

Je n'avais pas touché aux semences avant de changer d'emploi, mais je pense avoir appris les bases cette fois. J'apprends encore, donc je le mettrai à jour dès que j'aurai de nouvelles connaissances! !!

Recommended Posts

[Rails] Comment faire des graines
Comment écrire des graines de Rails
Comment écrire des rails
Comment désinstaller Rails
Comment faire un pot ombré
[rails] Comment publier des images
Java - Comment créer JTable
[Rails] Comment utiliser enum
[Rails] Comment utiliser enum
Comment lire les itinéraires des rails
Comment utiliser la jonction de rails
Comment terminer le serveur de rails
[Rails] Comment utiliser la validation
[Rails] Comment désactiver les turbolinks
[Rails] Comment utiliser authenticate_user!
[Rails] Comment mettre en œuvre le scraping
Comment écrire le routage Rails
[Rails] Comment installer simple_calendar
[Rails] Comment installer reCAPTCHA
[Rails] Comment utiliser Scope
[Rails] Comment utiliser l'appareil (Remarque)
[Rails] Comment empêcher la transition d'écran
Comment créer un conteneur Java
Comment utiliser Ruby on Rails
Comment créer un pilote JDBC
Comment déployer Bootstrap sur Rails
[Rails] Comment accélérer la composition de docker
[Rails] Comment ajouter de nouvelles pages
[Rails] Comment écrire la gestion des exceptions?
[Rails] Comment installer ImageMagick (RMajick)
[Rails] Comment installer Font Awesome
[Rails] Comment utiliser Active Storage
Comment créer un écran de démarrage
Comment créer un plug-in Jenkins
Comment installer jQuery dans Rails 6
[Rails] Comment mettre en œuvre le classement par étoiles
Comment faire un projet Maven
[Introduction aux rails] Comment utiliser le rendu
Comment créer un tableau Java
[Android] Comment créer un fragment de dialogue
Comment installer Swiper in Rails
Comment créer un résumé de calendrier Java
Comment implémenter la fonctionnalité de recherche dans Rails
Comment changer le nom de l'application dans les rails
[Rails] Comment convertir ERB en Haml
[Rails] Comment télécharger des images à l'aide de Carrierwave
Comment insérer une vidéo dans Rails