レール私はlibの下にクラスを変更するとき、私はリロードがapplication.rbで初期化子
config.autoload_paths += %W(#{config.root}/lib
だから、私のコードが再ロードされています。
しかし、自動ロードにconfig/initializersを追加しようとすると、コードが更新されないことに気付きました。
文字列クラスの拡張機能を作成している場合、コードを変更するたびにレールを再起動する必要があります。
お知らせください。
レール私はlibの下にクラスを変更するとき、私はリロードがapplication.rbで初期化子
config.autoload_paths += %W(#{config.root}/lib
だから、私のコードが再ロードされています。
しかし、自動ロードにconfig/initializersを追加しようとすると、コードが更新されないことに気付きました。
文字列クラスの拡張機能を作成している場合、コードを変更するたびにレールを再起動する必要があります。
お知らせください。
イニシャライザは、レールの起動時にのみロードされます(リロードされることはありません)。 config/initializers
で触れたときは、毎回レールを再起動します。
もちろん、あなたのコードが/lib
で定義されていることを確認して、テストスイートを使用してコードが正常に動作することを確認することができます。
など。これはまだだけレールを開始するとき、あなたがより簡単にモジュールを開発し、テストすることができますロードされますもののlib/speaker.rb
書き込み
module Speaker
def speak
puts "Ahum, listen: #{self.to_s}"
end
end
とあなたの初期化中に、あなたはその後、
class String
include Speaker
end
ような何かを行うことができます。
これが役に立ちます。
初期化ファイルは、レールサーバーの起動時に一度だけロードされます。初期設定値が変更されると、サーバーを再起動します。 詳細については、レールinitialization guidesを参照してください。
変更
のオートリロード 'libに' あなたは自動車のlibファイルをリロードすることができます。 Follow Autoload and Reload lib directory on change
In Railsアプリケーションの設定:config.reload_classes_only_on_change
は、追跡されたファイルが変更された場合にのみクラスのリロードを有効または無効にします。デフォルトでは、オートロードパスのすべてを追跡し、trueに設定されます。 config.cache_classes
がtrueの場合、このオプションは無視されます。
ありがとうございます! – Abdo