2013-06-27 10 views
5

Mam ścieżka zdefiniowana w moim pliku environment.rbUzyskiwanie dostępu Rails środowisko config w obszarze nazw Rake

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

chciałabym móc ustawić variableaccess je w pliku Rake tak

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 

ale wciąż otrzymuję błąd podczas uruchamiania rake myapp:first_task

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

Chyba go” nie ma nic wspólnego ze środowiskiem, które nie jest ładowane, ponieważ działa, jeśli umieściłem wewnątrz definicji zadania

.

Czy istnieje sposób użycia wartości konfiguracyjnych ustawionych w environment.rb, tak jak próbuję to zrobić?

Czy jest lepszy/właściwy sposób to zrobić?

okrzyki,

Luke

Odpowiedz

0

Czy istnieje jakiś sposób, aby użyć wartości konfiguracyjne ustawione w environment.rb jak ja próbuje zrobić?

tak można załadować Rails środowisko w każdym skrypcie

wystarczy dodać

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

przed wywołaniem zmienną chcesz zadzwonić

Jednak najlepszym sposobem, aby załadować Środowisko w twoim przypadku to dodanie powyższego kodu do pliku bin/rake lub do jeden

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

Innym sposobem jest użycie dotenv gem i zapisać ścieżkę w .env plik następnie załaduj go var w pliku environment.rb i rake