30

config/設定ファイルを探すgemを作成しました。これは正常に機能しますが、ユーザーが構成を変更した場合は、gemが新しい構成をロードする前に、プログラムを停止して再起動する必要があります。これには、変更のたびにRailsアプリ全体を再起動する必要がありますが、これは理想的ではありません。

キャッシュされたバージョンを使用する代わりに、ファイルを新しくロードするようにファイルを「再要求」する方法はありますか。

4

1 に答える 1

50

loadの代わりに使用できますrequire。これにより、以前にロードされたかどうかに関係なく、ファイルがロードされます。でオプションの拡張子をload指定する必要があることに注意してください。だからになります。.rbrequirerequire "path/to/myconfig"load "path/to/myconfig.rb"

これは、前の構成で定義されたものを定義解除しないことに注意してください。したがって、構成がから$verbose = true; $debug = trueに変更された$verbose = false場合は、構成をリロードした後も変更されます。$verbosefalse$debugtrue

もちろんload、設定ファイルをリロードするたびに実行される場所(つまり、メソッドまたはフック内)にステートメントを配置する必要があります。

于 2010-07-05T11:51:11.050 に答える