2012-10-10 18 views
12

He creado un motor de rieles. Tengo problemas para usar el comando seed, si ejecuto rake db: seed obtengo el error: "constant no inicializada".Rails engine/¿Cómo usar seed?

En el motor, que tiene un seeds.rb:

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

Luego, en mi aplicación ficticia Tengo una seeds.rb con

cms::Engine.load_seed 

(cms ser el nombre de la motor) - Obtuve un error ahora, esa "constante no inicializada". ¿Cómo hago referencia a la constante de la aplicación ficticia?

+0

¿Qué versión de rubí \ carriles se utilizan? –

+0

Además, trate de este comando: "cms rake db:: semilla". Donde cms - nombre del motor. Y mira "rake -T" - esto te devolverá la lista completa de comandos disponibles. –

+0

Gracias - Me trataron el comando, sigo teniendo "sin inicializar constantes de página". Genere el modelo "página". – jakobk

Respuesta

22

Entendido! - la respuesta es:

En el motor, agregue un seeds.rb en la carpeta db, anteponga el nombre de la aplicación a cada constante, así:

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

En la aplicación ficticia, o la aplicación, donde que está añadiendo su motor, añadir un seeds.rb a la carpeta db con:

Cms::Engine.load_seed 

y ejecute:

rake db:seed 

en el termin Alabama.

+3

¿Hay alguna manera de hacer este proceso de forma automática en lugar de añadir el método load_seed manualmente. Me pregunto sobre el caso de uso donde se puede agregar y eliminar una gema. –

Cuestiones relacionadas