2010-11-22 64 views
10

我有一些腳本需要運行,我想從我的rails應用程序訪問完整的環境。在Rails中,如何運行加載rails環境的腳本?

我知道我在Rails 2.3之前使用過script/runner

但我也用「delay_job」這加載Rails環境是這樣的(2.3碼):

#!/usr/bin/env ruby 

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

現在我工作的腳本中提取數據關閉消息隊列,然後我想它使用活動記錄和我的模型將數據插入日誌數據庫(可能與應用程序其餘部分使用的數據庫相同或不同)

回答

8

從腳本中,您需要提供文件config/environment.rb請注意,這正是DJ在這裏所做的,在Rails 3中也是這樣,

請注意,如果您將腳本轉化爲Rake任務(您可以將其保存在Rakefile中或您自己的*.rake文件的lib/tasks中),您可以簡單地讓您的任務取決於Rails定義的任務environment

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

我已經寫了一些自定義rake任務以及2.3下。我也考慮過這種方法。謝謝。 – 2010-11-22 17:42:23