seed-fu ist eine Syntax, mit der Sie nur die bereits vorhandenen Datensätze aktualisieren, aber ändern möchten, sie Datei für Datei ausführen und sie einfach schreiben können. Es ist ein bequemes Juwel mit Zucker.
gem 'seed-fu'
Führen Sie dies auch aus.
$ bundle install
#Must-Have-Verzeichnis
db/fixtures
#Erstellen Sie unterschiedliche Daten für jede Umgebung
db/fixtures/development
db/fixtures/production
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
$ rails db:seed_fu
Verwenden Sie seed_once, wenn Sie nach einmaligem Erstellen der Daten keine Aktualisierung durchführen möchten.
Category.seed_once do |s|
s.id = 1
s.name = 'HTML'
end
Category.seed(:id,
{ id: 1, name: 'HTML' },
{ id: 2, name: 'CSS' },
{ id: 3, name: 'Ruby' },
)
db/fixtures/development/category.csv
1,HTML
2,CSS
3,Ruby
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] #
s.name = category[1] #Beim Erstellen einer Seed-Datei können Sie zusätzlich zur obigen Beschreibung wie folgt schreiben. Daten aus CSV-Datei erstellen * Elemente durch Kommas trennen. (Hier ID, Name in dieser Reihenfolge) Schreiben Sie den Prozess zum Lesen aus CSV. Hier id hier Name
end
end
Führen Sie abschließend den folgenden Befehl aus
$ rails db:seed_fu
Verwenden Sie den Standard-Startwert, da das Kennwort in seed_fu nicht richtig festgelegt ist.
db/fixtures/development/00_user.rb
User.create!(id: 1, name: 'yuh', email: '[email protected]',
password: 'password', password_confirmation: 'password')
Recommended Posts