5

我的environment.rb文件中定义了一个路径

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

我希望能够在这样的 Rake 文件中设置变量访问这些

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像我试图做的那样使用设置的配置值?

有更好/正确的方法吗?

干杯,

卢克

4

1 回答 1

0

有没有办法environment.rb像我试图做的那样使用设置的配置值?

是的,您可以将 Rails 环境加载到任何脚本中

只需添加

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

在调用要调用的变量之前

但是,在您的情况下加载环境的最佳方法是将上述代码添加到文件bin/rakeconfig/boot.rb

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

另一种方法是使用dotenv gem并将路径保存在.env文件中,然后将该 var 加载到您的environment.rbandrake文件中

于 2017-12-26T09:44:29.117 回答