2011-07-06 6 views
47

私はコンソールで遊んでいます、私はいくつかのモデルコードを変更し、今私はそれをテストしたい。私は通常、コンソールを再起動します。より速い方法がありますか?多分、モデルコードをリロードするコンソールコマンドですか?もちろん変更されたコードを再ロードするためのRails Consoleコマンド(Rails 3以降)はありますか?

+0

私は少しのヘルパーコードを書いて、同じ問題(リロード!私の必要なように動作しませんでした)を持っていました - 私は[link](http://codepad.org/)を使ってテストしました。いいです。 – rtfminc

答えて

80

、単純に入力します。

reload! 
+3

これは私にとってはうまくいかないようです。モデル内のメソッドをコメントアウトしてから 'reload! 'と入力すると、メソッドはリロード後も動作します。 ?!?私はなぜ、そしてコンソールを再起動する別の方法があるのだろうか? – Meltemi

+4

@Meltemi:これは、Rubyが動作する方法(オープンクラスの概念)です。すべての定義を再読み込みし、既存のメソッドをオーバーライドしますが、古いメソッドをフラッシュしません。 – apneadiving

+1

5セントを追加するだけです: 'Pry'を使用している場合、' self.send(:include、Rails :: ConsoleMethods)を追加する必要があります。 ) ' –

4

をあなたはこのコマンドは、ロードされたロードされた定数をクリアし、それらはコンソールで参照しているとして、それらをロードしますreload!

を呼び出す必要があります。

reload!の前に古いオブジェクトがある場合は、これらの個々のオブジェクトでreloadに電話するか、新しいオブジェクトを見つけて、新しい方法を試してみる必要があります。