2011-03-25 13 views
84

Daha önce gayet iyi çalışıyordu. Biraz yapılandırma yapıyorum. Yani bazı yapılandırmalarını bilmeden değiştirebilirim. BuradaRaylar Konsol: yeniden yükle! model dosyalarındaki değişiklikleri yansıtmıyor musunuz? Olası sebep ne olabilir?

İşte
config.cache_classes = false 

    # Log error messages when you accidentally call methods on nil. 
    config.whiny_nils = true 

    # Show full error reports and disable caching 
    config.consider_all_requests_local  = true 
    config.action_view.debug_rjs    = true 
    config.action_controller.perform_caching = false 

    # Don't care if the mailer can't send 
    config.action_mailer.raise_delivery_errors = false 

    # Print deprecation notices to the Rails logger 
    config.active_support.deprecation = :log 

    # Only use best-standards-support built into browsers 
    config.action_dispatch.best_standards_support = :builtin 

    # migration prefix with sequence #s 
    config.active_record.timestamped_migrations = false 

    #time zone 
    config.time_zone = 'UTC' 

# Configure the default encoding used in templates for Ruby 1.9. 
config.encoding = "utf-8" 

# Configure sensitive parameters which will be filtered from the log file. 
config.filter_parameters += [:password] 

config.active_record.schema_format = :sql 

i yeniden yüklenmesine çalıştırmak application.rb

ait yapılandırma bölümdür çevrenin config/development.rb olduğunu! raylarda o

cevap

141

reload! sadece konsol ortamında son kod yeniden yükler. Mevcut nesneleri yeniden başlatmaz. Zaten herhangi bir nesneyi örneği varsa

Bunun anlamı, onların nitelikleri güncellenecektir olmaz. Bununla birlikte, yeni bir nesne oluşturursanız, nitelikleri yeniden yüklenen kodu yansıtacaktır. more here

+0

Özel doğrulama ne durumda? Bazı yöntemler tanımladım ve validate ile kayıt oldum. Doğrulama mantığını değiştirdiğimde, yeniden yüklenemedi !. –

+2

Nesneyi yeniden başlattığınızda yansıyacaktır. –

15

Eğer veritabanından nesne yeniden Are return true teselli? Örneğin

:

>> a = User.last 
=> #<User id: 16, email: "[email protected]"> 
>> reload! 
Reloading... 
=> true 

Eğer db onu yeniden dek 'a' modeliniz herhangi bir değişiklik yansıtmaz

.

+1

Not - bir nesne üzerinde bir yöntem erişmek, bu durum geçerlidir. siz) sınıf yöntemi foo (tanımını değiştirirseniz öncelikle yeniden sürece Örneğin, daha sonra konsol a.foo yeni tanımı kullanmaz. – jpwynn

İlgili konular