2010-12-01 14 views
5

Rakeタスクを実行するときに特定のイニシャライザを実行したいが、Railsサーバを実行していないときは実行したい。Rakeタスク専用のイニシャライザを実行

Rakeの呼び出しとサーバーの呼び出しを区別する最適な方法は何ですか?

答えて

6

Rakeでは、タスクの依存関係を指定できます。レーキ固有の初期化を独自のタスクに入れて、それを「環境」タスクに依存させることをお勧めします。たとえば:あなたは私たちが適切なレールのために持っているように初期化スクリプトのすくい固有のディレクトリを作成したい場合は

namespace :myapp do 
    task :custom_environment => :environment do 
     # special initialization stuff here 
     # or call another initializer script 
    end 

    task :my_task => :custom_environment do 
     # perform actions that need custom setup 
    end 
end 

、私達はちょうど私たちの:custom_environmentタスクでこれを実装します。

task :custom_environment => :environment do 
    Dir.glob("config/rake-initializers/*.rb").each do |initializer| 
     require initializer 
    end 
end 

これにより、レーキ固有のイニシャライザを通常のイニシャライザとは別に保つことができます。設定した:custom_environmentに依存することを忘れないでください。

関連する問題