2012-10-10 8 views
12

Ich habe eine Rails Engine erstellt. Ich habe Probleme mit dem Startbefehl, wenn ich rake db: seed ich bekomme den Fehler: "nicht initialisierte Konstante".Schienen Motor/Wie benutzt man Saatgut?

Im Motor bekam ich einen seeds.rb:

Page.create(:title => 'Frontpage', :order => '1')

Da ist in meinem dummy app, die ich mit einem seeds.rb bekam

cms::Engine.load_seed 

(cms der Name des Wesens Motor) - Ich habe jetzt einen Fehler, diese "nicht initialisierte Konstante". Wie referenziere ich die Konstante von der Dummy-App?

+0

Welche Version von Ruby \ Rails verwenden Sie? –

+0

Probieren Sie auch folgenden Befehl aus: "rake cms: db: seed". Wo cms - Name des Motors. Und schauen Sie sich "Rake-T" an - Sie erhalten eine vollständige Liste der verfügbaren Befehle. –

+0

Danke - Ich habe den Befehl versucht, ich bekomme immer noch "nicht initialisierte konstante Seite". Ich habe das Modell "Seite" erstellt. – jakobk

Antwort

22

Ok, hab es! - die Antwort lautet:

Im Motor ein seeds.rb in den db-Ordnern hinzufügen, stellen Sie vor dem App-Name für jede Konstante, etwa so:

Cms::Page.create(:title => 'Frontpage', :order => '1') 

In dem Dummy-App oder die App wo Sie Ihren Motor hinzufügen, eine seeds.rb dem db Ordner hinzufügen mit:

Cms::Engine.load_seed 

und laufen:

rake db:seed 

im termin al.

+3

Gibt es eine Möglichkeit, diesen Prozess automatisch durchzuführen, anstatt die Methode load_seed manuell hinzuzufügen. Ich wundere mich über den Anwendungsfall, wo ein Edelstein hinzugefügt und entfernt werden kann. –