2014-12-11 15 views
7

ho questo strano problema dove se faccio:Perché ricevo Constant non inizializzato per un compito rastrello, Rails 4.1.8

namespace :xaaron do 
    task :get_roles do 
     roles = Xaaron::Role.all 
     puts roles 
    end 

    task :get_role, [:name] do |t, args| 
     role = Xaaron::Role.find(args[:name].parameterize) 
     puts role 
    end 
    end 

Il primo compito funzionerà perfettamente bene. Posso anche inserire un binding.pry nel lato e fare Xaaron::Role e ottenere informazioni sui ruoli indietro. Ma il secondo compito esplode affermando NameError: uninitialized constant Xaaron::Role

Eseguo ogni attività, nella mia app principale (poiché queste attività sono all'interno di un motore) come: bin/rake xaaron:get_roles e bin/rake xaaron:get_role.

Perché il secondo esplode ma il primo non lo è? C'è una cosa scoping che va avanti con argomenti?

Aggiornamento

Vorrei sottolineare che io possa fare un bin/rails c nella applicazione principale che utilizza detto motore e fare Xaaron::Role e ottenere informazioni sulla tabella di ruoli.

risposta

20

io non sono sicuro del perché sia ​​le opere, ma se questo è rotaie e quelli sono modelli di rotaie, le attività dovrebbero dipendere l'ambiente:

task :get_roles => [ :environment ] do 

In seconda del: compito ambiente, primi carichi rotaie.

vedi anche:

What's the 'environment' task in Rake?

+0

ovviamente rota e penso che carichi l'ambiente predefinito. Che si tratti di sviluppo o produzione o cosa mai. Ma ammetti quello che dici provando in base ai voti alla tua risposta. – SeekingTruth

+1

Inoltre non è possibile eseguire task ': something => [: environment], [: param] do | t, args | ... end' con il tuo "esempio" puoi chiarire come potrei passare agli argomenti? – SeekingTruth

+2

try ': something, [: param] => [: environment]' – DGM

0

È anche possibile eseguire task rake come

bundle exec environment xaaron:get_role 

questo verrà caricato ambiente Rails prima.

+0

Questo è ciò che ha funzionato per me. Non sono sicuro del motivo per cui hai downvoted – coisnepe

Problemi correlati