2012-12-07 28 views
5

Testleri çalıştırırken ActiveAdmin'i devre dışı bırakmak istiyorum.Rails'de dizin yükleme kara listeye nasıl alınır?

Bu nedenle, Döşeme dosyasına require: false ekleyip yollar ve başlatıcıda if defined?(ActiveAdmin)'u denetliyorum.

Ama Raylar hala dolayısıyla ben '/app/admin/admin_user.rb:1:in benzer hatayı alıyorum modeller formunu app/admin yükler: başlatılmamış sabit ActiveAdmin (NameError) `

iyi yolu yüklenmesini için 'kara liste' app/admin dizin nedir? konfigürasyonunda

cevap

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

/eklemek application.rb: Sen yoluna göre "/ mnt/hgfs/proje/eventmust/app/admin" değiştirmek zorunda

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 

, çok temiz değil ama iş.

+0

Benim için çalışmıyor gibi görünüyor. "Config.paths", "app/admin" yoluna sahip değil. 'New_eager_load_paths' dosyasından kaldırılması, dosyayı hevesle yüklemez, ancak yine de bazı Rails sihirleri tarafından yapılmaya çalışılır (örneğin, 'DashboarsController' yükleme -' admin/dashboard.rb 'yüklenmez). Düşünceler? –

+0

Raylar 3.2.8'de, app/admin dosyasındaki bir dosyada sadece bir sınıfla test yapıyorum ve iş :(. Config.paths ve config.eager_load_paths öğelerinizi kontrol edin ve belki de dosya yapılandırmasının sonunda 4 satırı eklemeyi deneyin/application.rb (sadece 2 "sonundan önce") –

+0

Rails '3.2.8'de de zaten.Yalnızca yolları inceledim ve 'admin' yoluna yapılan tüm referansları kaldırdım.Ayrıca çevre/testin sonunda yapıyor .rb' (config/application.rb' sonra yüklenir ve aslında yüklendiğini doğruladı). –

İlgili konular