Otomatik yükleme Raylar lib dosyaları 4
Geliştirme sırasında /lib
benim dizininde kod otomatik yüklenmesini bir başlatıcı aşağıdaki satırı kullanın:
config//özel başlatıcılar.rb:
RELOAD_LIBS = Dir[Rails.root 'lib/**/*.rb'] if Rails.env.development?
(Rails 3 Quicktip: Auto reload lib folders in development mode)
Harika çalışıyor, ama çok verimsiz üretim - her isteği libs yüklemek Yerine, sadece üzerine onları yüklemek istiyorum. Aynı blog another article bunu nasıl tarif etti:
application/config.rb:
# Custom directories with classes and modules you want to be autoloadable.
config.autoload_paths = %W(#{config.root}/lib)
config.autoload_paths = Dir["#{config.root}/lib/**/"]
Bu geçiş, ancak, hatta geliştirme, lib işlevleri kullanmayı denerken NoMethodErrors.
Lib dosyaları bir örnek:
/lib uzantıları.rb:
Time.class_eval do
def self.milli_stamp
Time.now.strftime('%Y%m%d%H%M%S%L').to_i
end
end
Time.milli_stamp
arama NoMethodError atmak olacaktır
Diğerleri ÇOK benzer sorulara cevap olduğunun farkındayım ama hepsi önce - lib derslerim zaten endişe etmedim bu sözleşmeler ve diğer konuları adlandırma ile anlaşma gibi görünüyorçalıştıher istek yükleniyor, ben sadece bunu değiştirmek istiyor başınabaşlangıçyükleniyor. Bunu yapmak için doğru yolu nedir?
CEVAP
Bu sorunu çözebilir bence
application/config.rb:
config.autoload_paths << Rails.root.join('lib')
ve doğru adlandırma edinlib.
/foo lib.rb:
class Foo end
/foo/bar lib.rb:
class Foo::Bar end
Eğer gerçekten gibi dosyasındaki bazı maymun yamalar/lib uzantıları.rbolabilir elle gerektirir:
config//başlatıcılar gerektirir.rb:
require "#{Rails.root}/lib/extensions"
S. S.
Bill Harding Rails 3 Autoload Modules/Classes.
Ve Raylar tam otomatik yükleme için ne yapacak? anlamak için
Simon Coffey tarafından Rails autoloading — how it works, and when it doesn't okuyun.
Yükleme dosyaları otomatik olarak Xml ...
Nasıl bir Makefile otomatik olarak değ...
Nasıl tuzak jquery-uı Raylar otomatik ...
Otomatik olarak Subversion sürüm bilgi...
Ekleme 'yapılandırma için lib.aut...