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.
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! !! !!
Cela créera une donnée de départ pour l'utilisateur.
User.create!(email: "[email protected]",password: "password" )
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
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
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
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" )
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) )
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