2009-07-17 1 views
1

Railsアプリケーションを開発しているときに、私はコードを操作しているときに、通常、devサーバーをローカル(mongrel)で実行しています。コードの変更は、すばやく更新した後に反映されます。フォルダ内のLibに書いていたクラスに変更が加えられたのを除いて変更はありません。これは何らかの形で既知の問題ですか?これを引き起こす原因は何ですか?しばらくの間、問題解決に取り組んでいなくても、その解決策のどれにも働く機会がないことを知ることは、非常にイライラしています。Railsがコードをリフレッシュしない

ありがとうございました。

答えて

1

Railsデベロッパーサーバー(私がWEBrickを使用している)が自動的に変更を再スキャンしないフォルダがあることがわかりました。ベンダー/プラグインのフォルダは私が確かに知っているものですが、私はlibフォルダの内容を変更するのに問題があることを思い出しています。

基本的に、私はいつもアプリの外で何かを変更すると、私はdevサーバーを再起動します。

+0

おかげで、開発環境では、デフォルトで有効になっています。 いつでもサーバーを再起動する以外の既知の回避策はありますか? – user94154

+0

私は気付いていません。 railsのdevサーバは、変更のためにアプリケーションフォルダを見るだけで、オンザフライでリロードされるように見えます。 多分あなたがMongrelのために変えることができる設定か何かがありますが、私はMongrelに慣れていません。 –

0

PHPアプリケーションコードでは、リクエストごとにリロードされるため、これを高速化するにはAPCのようなものが必要です。 Railsは異なるモデルを持ち、アプリケーションは一度起動され、複数の要求を処理できます。

変更されたファイルを再ロードするための特別な機能がありますが、いくつかのディレクトリに制限されています。さらに、起動時に呼び出されるコードの変更(environment.rbやプラグインなど)は処理されません。この場合、サーバーを再起動する必要があります。

クラスリロード機能は、次の設定オプション

config.cache_classes = false 
関連する問題