2011-01-05 7 views
40

私は初期化子でこのコードを持っている:コードがRails 3のコンソールで実行されているかどうかを検出するにはどうすればよいですか?

if $0 == 'irb' 
    # ... 
end 

それはRailsの2.3と正常に動作しますが、それはレールcまたはレール秒で起動した場合のRails 3の$ 0の値は 'スクリプト/ Railsの無問題です。 ARGVは空の配列です。アプリケーションが「レールc」または「レールコンソール」で起動されているかどうかをどのように検出できますか?

答えて

79

あなたは春を実行するときに、これはRailsの初期化中に動作しないことを、このおそらく

if defined?(Rails::Console) 
    # in Rails Console 
else 
    # Not in Rails Console 
end 
+7

注意を試みることができます。 –

+1

'Rails.const_defined?(" Console ")'が定義されていません(Rails :: Console)。 – wxgeorge

+0

@wxgeorgeなぜそれが良いですか? –

関連する問題