2011-10-13 27 views
17

Tüm dizinleri modellerde ve lib dizinlerinde tekrarlı olarak nasıl yüklersiniz?Tüm model altbilgileri de dahil olmak üzere yinelemeli olarak

config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')] 
config.autoload_paths += Dir[Rails.root.join('lib', '{**}')] 

ama onlar sadece model ve lib dizinlerinin bir seviye eklemek görünmektedir: application.rb, ben hatları var.

Teşekkür

cevap

34

bu yararlı olmalıdır

Dir["#{config.root}/app/models/**/","#{config.root}/lib/**/"] 

tadını çıkarın! (:

Güncelleme:..

Mükemmel bir soru, ben sadece benim son projesi atıfta bulunmuşlardır Yukarıdaki örneği gönderme

bazı testler yaptıktan sonra daha iyi anlaşılması bana geliyor ve o harika

temel fark ne in/Rails.root

Firar '/' sonra '**' mantıklı config.root değil Dosya yöntemini katılmak elbette.

Birincisi, globbing sırasında sadece dizinleri ile eşleşir. İkincisi, özyinelemeli. Senin durumunda

bu bir ... biraz karışık nasıl `Dir [Rails.root.join ('uygulamasını', 'modeller', '{çalıştı de uygun

Dir[ Rails.root.join('app', 'models', '**/') ] 
+0

Güzel olabilir ** } ')] 'dir [" # {config.root}/app/models/**/"]' dan farklıdır. Teşekkürler – GTDev

+0

rağmen ben yeterince büyük – sarvavijJana

+0

olduğu gibi bazı açıklama ile cevabımı güncelledim hala bunu alamadım. O zaman neden kimse '** /' yerine '{**}' kullanıyor? – jgomo3