2010-06-02 15 views
7

Modülleri Ruby'de ad alanları olarak kullanıyorum. Otomatik yükleme hakkında ... autoload :"App::ModuleA", 'app/module_a gibi bir "sabit ad olmalı" hatası atan bir şey nasıl olur? Bu çok iç içe düzeyleri için çalıştığınıad alanları/altmodüller ile otomatik yükleme

App.autoload :ModuleA, "app/module_a" 

Not:

cevap

11

Sen autoload için bir sembol (sorunuzu muhtemelen bir yazım hatası) geçmesi ve benzeri sabit ebeveyni onu aramak gerekiyor. Yakut App::ModuleA::Inner karşılaştığında

module App::ModuleA 
    autoload :Inner, "path/to/inner" 
end 

, ilk, ModuleA erişmeye çalışan o hakklı tarafından başarılı ve ancak o zaman şimdi nerede özdevinimli_yükle için bildiği için de başarılı olan Inner çalışacaktır: app/module_a sahip olduğunuz varsayalım.

+0

Bunu anlıyorum. Ama herhangi bir Sabit ModuleA çağırmak için başlatmak istemiyorum, ben birileri "AppAltAlAlAr –

+1

Indeed, ne zaman sadece" autoload "değil, sadece 'App.autoload', aramak istediğinizi söylediğinde onu aramak istiyorum . Deneyin, istediğiniz gibi çalışacaktır. –

+0

aaaah ... Görüyorum. çok teşekkürler :) –