2013-06-27 36 views
5

我在environment.rb文件中定義的路徑訪問Rails環境配置

MyRailsApp::Application.configure do 
    config.xml_import_path = "/path/to/xml" 
end 

我希望能夠設置一個variableaccess這些耙式文件中這樣

namespace :myapp do 
    xml_path = MyRailsApp::Application.config.xml_import_path 

    task :first_task => :environment do 
    # do some stuff with xml_path 
    end 

    task :second_task => :environment do 
    # do some other stuff with xml_path 
    end 
end 

但我不斷收到一個錯誤,當我運行rake myapp:first_task

undefined method `xml_import_path' for #<Rails::Application::Configuration:0x00000006a98bd8> 

我猜」因爲它工作,如果我把

xml_path = MyRailsApp::Application.config.xml_import_path 

裏面的任務定義。

有沒有什麼辦法可以像我試圖做的那樣使用environment.rb中設置的配置值?

有沒有更好的/正確的方法來做到這一點?

歡呼聲,

盧克

回答

0

有沒有什麼方式,使用environment.rb設置配置值一樣,我試圖做什麼?

是的,你可以在你的Rails環境加載到任何腳本

只需添加

ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'development' 
require File.expand_path(File.dirname(__FILE__) + "/../config/environment") 

你打電話,你想打電話

然而

變量之前,最好的方式來加載環境在你的情況是將上面的代碼添加到bin/rake文件或config/boot.rb一個

參考:https://shifteleven.com/articles/2006/10/08/loading-your-rails-environment-into-a-script/

另一種方法是使用dotenv gem並保存在.env路徑的文件,然後加載VAR在environment.rbrake文件