2010-11-22 3 views
10

私は私のレールアプリから完全な環境にアクセスしたいと思ういくつかのスクリプトを実行する必要があります。Railsでは、レール環境を読み込むスクリプトをどのように実行するのですか?

以前はscript/runnerをRails 2.3で使用していました。

しかし、私はまた、このようなレールの環境(2.3コード)をロード「delay_job」を使用しました:

#!/usr/bin/env ruby 

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 
require 'delayed/command' 

私が働いているスクリプトは、現在のメッセージ・キューからデータを引き出し、その後、私が欲しいですアクティブなレコードとモデルを使用して、そのデータをロギングデータベースに挿入します(これは、アプリケーションの残りの部分が使用するDBと同じであってもなくてもかまいません)。

答えて

8

スクリプトからは、 config/environment.rbあなたのアプリケーションでこれはまさにDJがここで行うことです。これはRails 3でも同様です。

スクリプトをRakeタスク(Rakefileまたは*.rakeファイルにlib/tasksという名前で貼り付けることができます)にすると、タスクはRails定義のタスクenvironmentに依存していることになります。

task :mytask => :environment do 
    # custom stuff 
end 
+0

私は多くのカスタムレイクタスクも2.3以下で書いています。私はこのアプローチも考慮した。ありがとう。 –

関連する問題