2012-10-10 11 views
12

Ho creato un motore Rails. Sto riscontrando problemi nell'usare il comando seed, se eseguo rake db: seed ottengo l'errore: "costante non inizializzata".Rails engine/Come usare seed?

Nel motore, ho ottenuto un seeds.rb:

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

Poi nel mio manichino app ho ottenuto un seeds.rb con

cms::Engine.load_seed 

(cms è il nome del motore) - Ho ricevuto un errore ora, quella "costante non inizializzata". Come faccio a fare riferimento alla costante dall'app fittizia?

+0

Quale versione di ruby ​​\ rails usi? –

+0

Inoltre, prova questo comando: "rake cms: db: seed". Dove cms - nome del motore. E guarda "rake -T" - questo ti sarà restituito l'elenco completo dei comandi disponibili. –

+0

Grazie - Ho provato il comando, ho ancora "Pagina costante non inizializzata". Ho generato la "pagina" del modello. – jakobk

risposta

22

Ok, ho capito! - la risposta è:

Nel motore, aggiungere un seeds.rb nella cartella db, anteporre il nome dell'applicazione per ogni costante, in questo modo:

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

Nell'applicazione fittizio, o l'applicazione in cui si aggiunge il motore, aggiungere un seeds.rb alla cartella db con:

Cms::Engine.load_seed 

ed eseguire:

rake db:seed 

in termin al.

+3

Esiste un modo per eseguire questo processo automaticamente anziché aggiungere manualmente il metodo load_seed. Mi chiedo del caso d'uso in cui una gemma può essere aggiunta e rimossa. –

Problemi correlati