[Rails] Entrée de données initiale avec seed_fu!

Qu'est-ce que seed_fu

seed-fu est une syntaxe qui vous permet de mettre à jour uniquement les enregistrements qui existent déjà mais que vous souhaitez modifier, de les exécuter fichier par fichier et de les écrire facilement. C'est un bijou pratique avec du sucre.

Comment utiliser

  1. Décrivez ce qui suit dans le Gemfile.

gem 'seed-fu'

Exécutez également ceci.


$ bundle install
  1. Créez un répertoire pour placer le fichier de départ.

#Répertoire incontournable
db/fixtures

#Créez des données différentes pour chaque environnement
db/fixtures/development
db/fixtures/production
  1. Créez un fichier de départ dans db / fixtures ci-dessous.

01_category.rb



Category.seed do |c|
  c.id = 1
  c.name = 'HTML'
end

Category.seed do |c|
  c.id = 2
  c.name = 'CSS'
end

Category.seed do |c|
  c.id = 3
  c.name = 'Ruby'
end
  1. Exécutez la commande seed_fu.

$ rails db:seed_fu

Conseils

Utilisez seed_once

Utilisez seed_once si vous ne souhaitez pas mettre à jour après avoir créé les données une fois.


Category.seed_once do |s|
  s.id = 1
  s.name = 'HTML'
end

Syntaxe sucre

Lors de la création d'un fichier de départ, vous pouvez écrire comme suit en plus de la description ci-dessus.


Category.seed(:id,
 { id: 1, name: 'HTML' },
 { id: 2, name: 'CSS' },
 { id: 3, name: 'Ruby' },
)

Créer des données à partir d'un fichier CSV

db/fixtures/development/category.csv



1,HTML
2,CSS
3,Ruby

Écrivez le processus à lire à partir de CSV.

db/fixtures/development/01_category.rb



require 'csv'

csv = CSV.read('db/fixtures/development/category.csv')
csv.each do |category|
 Category.seed do |s|
  s.id = category[0] #Ici id
  s.name = category[1] #Ici nom
 end
end

Enfin exécutez la commande suivante


$ rails db:seed_fu

Utilisateur créé

Comme le mot de passe n'est pas défini correctement dans seed_fu, utilisez la valeur par défaut.

db/fixtures/development/00_user.rb



User.create!(id: 1, name: 'yuh', email: '[email protected]',
password: 'password', password_confirmation: 'password')

Recommended Posts

[Rails] Entrée de données initiale avec seed_fu!
[Rails] Création initiale des données avec seed
Créez un site EC avec Rails5 ⑥ ~ entrée de données de départ ~
Rails6: saisissez les données initiales d'ActionText à l'aide de seed
[Ruby on Rails] Introduction des données initiales
[Rails] Obtenir une entrée standard pour les données multilignes
[Rails 6] Deux méthodes pour saisir plusieurs images à la fois à l'aide de CarrierWave / (1) Saisie avec les données de départ initiales / (2) Importer avec CSV
Démarrez SQL Server avec Docker et enregistrez les données initiales
Un script qui crée yaml à partir de CSV pour mettre les données initiales dans Rails with Fixtures
Configuration avec les données de test initiales insérées dans le conteneur Db2 / DB
[Rails 6] Erreur d'exécution avec $ rails s
Manipuler le dispositif avec des rails
[Rails] Didacticiel Apprendre avec les rails
[Rails] Développement avec MySQL
Prend en charge la multilinguisme avec Rails!
Résumé du travail initial lors de la création d'une application avec Rails
[Rails] Polymorphique express avec graphql-ruby
[Rails] Télécharger des vidéos avec Rails (ActiveStorage)
[Vue Rails] "Hello Vue!" Affiché avec Vue + Rails
Préparation au développement avec Rails
Exécuter des rails à chaque fois dans le docker
[Docker] Construction de l'environnement Rails 5.2 avec docker
Utilisez plusieurs bases de données avec Rails 6.0
[Rails] Spécifiez le format avec link_to
[Docker] À utiliser à tout moment avec Docker + Rails
[Rails] Je souhaite ajouter des données aux paramètres lors de la transition avec link_to