2012-12-07 4 views
5

Desidero disattivare ActiveAdmin durante l'esecuzione dei test.Come inserire nella lista nera il caricamento delle directory in Rails?

Quindi aggiungo require: false al file Gem e controllo if defined?(ActiveAdmin) in route e inizializzatore.

Ma Rails carica ancora la forma modelli app/admin così sto errore simile a /app/admin/admin_user.rb:1:in 'ottenendo: non inizializzato costante ActiveAdmin (NameError) `

Qual è il modo migliore per 'lista nera' del app/admin directory venga caricato?

risposta

6
# config/environments/test.rb 

path_rejector = lambda { |s| s.include?("app/admin") } 

# Remove the path from being loaded when Rails starts: 
config.eager_load_paths = config.eager_load_paths.reject(&path_rejector) 

# Remove the path from being lazily loaded 
ActiveSupport::Dependencies.autoload_paths.reject!(&path_rejector) 
0

in config/application.rb aggiungere:

config.paths.delete("app/admin") 
new_eager_load_paths = config.eager_load_paths.dup 
new_eager_load_paths.delete("/mnt/hgfs/project/app/admin") 
config.eager_load_paths = new_eager_load_paths 

Bisogna sostituire "/ mnt/hgfs/progetto/eventmust/app/admin" per il vostro percorso, non è molto pulito, ma è un lavoro.

+0

Non sembra funzionare per me. 'Config.paths' non ha il percorso' app/admin'. Rimuovendolo da 'new_eager_load_paths' non si carica il file con impazienza, ma si cerca ancora di farlo in seguito da qualche magia di Rails (ad esempio caricando' DashboarsController' - carica 'admin/dashboard.rb', cosa che non dovrebbe accadere). Pensieri? –

+0

In rails 3.2.8, provo solo con una classe in un file in app/admin e funziona :(. Ispeziona i tuoi config.paths e config.eager_load_paths, e magari prova ad aggiungere le 4lines alla fine della configurazione del file/application.rb (appena prima della "fine" 2). –

+0

Anche su '3.2.8' Rails. Ha già ispezionato i percorsi e rimosso tutti i riferimenti al percorso' admin'. Inoltre, lo fa alla fine degli 'ambienti/test .rb' (che viene caricato dopo 'config/application.rb' e confermato che è effettivamente caricato). –