Ich möchte meine Entwicklungsdatenbank in genau der gleichen Weise säen, wie ich meine Testdatenbank seed. Ich habe ein PersonalTitle
Modell, das ein Attribut hat, title
. Die title
hat Werte wie Mr
, Mrs
, Miss
, Ms
und Dr
. Es gibt mehrere andere Modelle, die belong_to
PersonalTitle
. Zum BeispielWie setze ich meine Entwicklungsdatenbank mit Schienen test Fixtures
class Administrator < ActiveRecord::Base
belongs_to :personal_title
end
class Worker < ActiveRecord::Base
belongs_to :personal_title
end
class Client < ActiveRecord::Base
belongs_to :personal_title
end
... und so weiter
In personal_titles.yml
, dass der Test-Datenbank Samen, ich habe
personal_title_mr:
title: Mr
personal_title_mrs:
title: Mrs
personal_title_ms:
title: Ms
personal_title_miss:
title: Miss
personal_title_dr:
title: Dr
und dann, wenn ich einen persönlichen Titel in administrators.yml
verwenden möchten Ich habe
administrator_john_smith:
personal_title: personal_title_mr
So kann ich benannte Referenzen verwenden, um die a zu füllen dministrators Tabelle mit der personal_title_id. Ich kann das nicht tun, wenn ich meine Entwicklungsdatenbank anfange. Von dem, was ich auf Stack-Überlauf gefunden, für die Entwicklung, hat personal_titles.yml
so aussehen,
- title: Mr
- title: Mrs
- title: Ms
- title: Miss
- title: Dr
So ist die persönlichen Titel nicht in einer Datei mit dem Namen yml werden können, die eine Entwicklungsdatenbank zum Auffüllen verwendet wird. Warum nicht? Rails weiß, wie Namensreferenzen verwendet werden, da dies beim Setzen der Testdatenbank geschieht.
Ich bin mit Rails 4.10 und Ruby 1.9.3
aktualisieren
ich meine Entwicklungsdatenbank mit db\seeds\seed_all.rb
Aussaat. Innerhalb dieser Datei habe ich
seed_file = Rails.root.join('db', 'seeds', 'personal_titles.yml')
personal_titles = YAML::load_file(seed_file)
PersonalTitle.create!(personal_titles)
ich über faker kennen und ich habe eine Seed-Datei für sie. Im obigen Fall möchte ich bekannte Daten, die ich verstehe, die sich nicht ändern und wo ich volle Kontrolle über die Assoziationen habe.
Ich bekomme Ihr Problem nicht vollständig, weil Sie mit Samenkapseln und Fixtures wie das selbe interagieren (während ich über verschiedene Dinge nachdenke), aber die Umgebung beeinflusst normalerweise niemals Prozesse, um es so anders zu machen. Hat meine Antwort mit einigen gemeinsamen Ideen verlassen – AntonTkachov
Haben Sie 'rake db: fixtures: load' versucht? – MrYoshiji
Nein, ich habe @MrYoshiji nicht, aber ich habe es gerade getan und genau das wollte ich. Wenn Sie eine formelle Antwort hinzufügen, werde ich sie als korrekt markieren – RamJet