2009-05-20 14 views
13

Bu, aşağıdaki question numaralı takip numarasıdır. Geliştirme sırasında kod değişikliklerinin yürürlüğe girmesi için lib/koddaki kodu değiştirdiğimde raylar uygulamasını tekrar başlatmalıyım. Denetleyicileri, modelleri, vb. Otomatik olarak yeniden yüklemek için bu kodu nasıl alabilirim?Dosya değiştiğinde kodu lib/otomatik olarak nasıl yüklerim?

+0

olası bir kopyasını [(Rails) Yeniden başlatmak için sunucuya gerek kalmadan "lib" dosyaları yükleniyor ...?] (Http://stackoverflow.com/questions/1114388/rails-reloading-lib-files-without-having- to-restart-server) –

+0

olası bir kopyası [Ruby on Rails 3 - Her istek için yeniden yükle lib dizini] (http://stackoverflow.com/questions/3282655/ruby-on-rails-3-reload-lib-directory- her istek için) – shime

cevap

0

neden sadece

load Rails.root + '/lib/your_lib.rb' 
+1

bu sadece yükleme örneğin çalışır denetleyicinizde – ecoologic

+0

"join" kullanılmadığı sürece başarısız oldu: 'load Rails.root.join ('lib/your_lib.rb')' –

1
module ActsAsReloadable 
    def self.included(base) 
    ActiveSupport::Dependencies.explicitly_unloadable_constants << base.name if Rails.env == 'development' 
    end 
end 

sizin lib,/* dosyaları basitçe include ActsAsReloadable kullanmak ve Raylar 3 için config/application.rb

2

yılında config.autoload_paths += %W(#{config.root}/lib) eklemek için girin talimatları değişir makalede @ bilimin cevabı verilmiştir. Tabii ki

ActiveSupport::Dependencies.autoload_paths << File::join(Rails.root, 'lib') 
ActiveSupport::Dependencies.explicitly_unloadable_constants << 'MyModuleInLibFolder' 

MyModuleInLibFolder için modülün adı yerine: En environments/development.rb dosyasında satırları ekleyin.

+0

@ science'ın cevabı yalnızca bağlantıya bir yanıt olarak silindi (bağlantı çürüdü, ne için değer). –

İlgili konular