2013-06-27 114 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文件