2010-01-12 13 views
7

lib dirRails lib içerir

tanımlı modüllerle ilgili şaşırtıcı bir sorunum var İki dosyam var

#lib/authentication.rb 

module Authentication 

end 


#lib/test_module.rb 

module TestModule 

end 

Uygulama denetleyicimde

 class ApplicationController < ActionController::Base 
    include Authentication 
    include TestModule 
end 

var Doğrulama Modülü düzgün yükleniyor ancak TestModule

değil

"başlatılmamış sabit ApplicationController :: TestModule"

Ben hiç kimse ...

DÜZENLEME: Bunu hata ayıklamak için nereye bakabileceğimi bilen var mı?

+0

Aptal bir soru, ama sunucunuzu yeniden başlattınız mı? İşlemi yeniden başlatmazsa düzeltin mi? –

+0

yup Yeniden başlatmayı denedim. Sunucu daha sonra başlatılamıyor. – stellard

cevap

5

modülü içeren dosya okunur, böylece config/application.rb içinde config.autoload_paths için lib dizin eklemek için emin olun Raylar 3 itibariyle

+2

Bunu denedim ve bu ben var böyle bir dosya yüklenemedi - lib/test_module (MissingSourceFile) – stellard

+2

Dosyanın doğru yerde olduğundan emin misiniz? Gereksinim ifadesi bulamadığı için ... – Veger

+1

Doğru yerde olduğundan emin oldum ama tekrar kontrol ettim. Bazı nedenlerden dolayı dosya adı test_module.r? B idi. Bu, TextMate'de (dosyayı oluşturduğum yerde) .rb olarak görüntülendiğinden tuhaftır. Dosyayı yeniden adlandırdım ve işe yaradı. Bu konudaki zamanınız için teşekkür ederim, çok şaşırdım, üzerinde başka bir göze ihtiyacım vardı. – stellard

20

yardımcı olabilecek senin ApplicationController dosyasının en üstünde require 'lib/test_module' ekleme ve modül yüklendiği .

config.autoload_paths += %W(#{config.root}/lib) 

bu ve yükleme alt dizinleri hakkında daha fazla bilgi için bak here. Ayrıca

, supposedly " o kodu düzgün [un] yüklenmesini ActiveSupport :: bağımlılıklar engeller, çünkü bir raylar uygulaması içinde gerektiren kullanmak olmamalıdır".