[RUBY] [Rails] Verwalten Sie Daten für jede Seed-Datei

Das Team erstellt eine Klonseite für eine bestimmte Frima-App. Zu diesem Zeitpunkt hatte ich ein kleines Problem mit der Verwendung der Seed-Datei, daher werde ich sie als Memorandum belassen.

Was willst du tun

Bei der Auflistung eines Produkts werden der "Status des Produkts", die "Versandkosten" usw. usw. angegeben. Geben Sie zuerst den Wert in die Datenbank ein, damit Sie ihn aus dem Pulldown-Menü auswählen können.

So was スクリーンショット 2020-06-29 17.41.45.png

Implementierung

1. Erstellen einer Rechenaufgabe

Erstellen Sie seed.rake direkt unter lib / task / und beschreiben Sie Folgendes

lib/tasks/seed.rake


 Dir.glob(File.join(Rails.root, 'db', 'seeds', '*.rb')).each do |file|
   desc "Load the seed data from db/seeds/#{File.basename(file)}.
   task "db:seed:#{File.basename(file).gsub(/\..+$/, '')}" => :environment do
     load(file)
   end
 end

2. Erstellen Sie jede Seed-Datei

Erstellen Sie ein DB / Seeds-Verzeichnis und erstellen Sie eine Datei mit dem Namen "model name.rb, in die Sie Daten einfügen möchten" Erstellen Sie vorerst Condition.rb, das den Status des Produkts anzeigt

db/seeds/Condition.rb


conditions = Condition.create([
  {condition: "Neu / unbenutzt"},
  {condition: "Fast unbenutzt"},
  {condition: "Keine erkennbaren Kratzer oder Flecken"},
  {condition: "Leicht zerkratzt und schmutzig"},
  {condition: "Es gibt Kratzer und Schmutz"},
  {condition: "Insgesamt schlechter Zustand"}])

3. Führen Sie aus

Sie müssen lediglich den folgenden Befehl im Terminal ausführen

bundle exec rake  db:seed:condition

Sie haben die Daten in die Konditionstabelle eingetragen! スクリーンショット 2020-06-29 18.18.27.png

Es ist jedoch ein Problem aufgetreten ...

Wenn es sich um eine lokale Umgebung handelt, war dies in Ordnung, aber bei der Bereitstellung in einer Produktionsumgebung Ich wusste nicht, wie ich jede von mir erstellte Seed-Datei lesen sollte, daher konnte ich die Daten nicht wiedergeben.

Lösung

Die folgende Beschreibung wurde zu seeds.rb hinzugefügt

seeds.rb


require "./db/seeds/condition.rb

Als ich den folgenden Befehl im Terminal der Produktionsumgebung ausführte, wurde er ordnungsgemäß wiedergegeben

python


require "./db/seeds/condition.rb

Am Ende

Ich frage mich, ob es mit aktivem Hash etwas einfacher hätte sein können, aber Da es einen Liefertermin gibt, habe ich ihn einmal so implementiert Ich würde gerne wissen, ob es einen anderen guten Weg gibt

Referenzartikel

Recommended Posts

[Rails] Verwalten Sie Daten für jede Seed-Datei
[Rails] Erste Datenerstellung mit Seed
[Schienen] Holen Sie sich die Standardeingabe für mehrzeilige Daten
Speichern Sie Daten aus einer Excel-Datei mit Rails gem roo
Erstellen Sie eine EC-Site mit Rails5 seed ~ Startdateneingabe ~
Rails6: Geben Sie die Anfangsdaten von ActionText mit seed ein
Zusammenfassung der Methoden zum Lesen von Dateien für jedes Java-Dateiformat
[Rails] Bereiten Sie Dummy-Daten vor, die zum Testen von [Faker] verwendet werden sollen.