2,5 sonra yıllar, ben istiyorum En iyi çözüm olduğunu düşündüğüm şeyi paylaş.
uygulamanın kök klasöründe bir .env
dosyası oluşturun ve uygulama ortamı belirten bir bayrak ekleyin:
ENVIRONMENT=development
O zaman bu tüm ortam değişkenleri yüklemek için Brandon Keepers' dotenv
mücevher kullanmak dosya. Artık, Rake görevleri içinde .env
'da belirtilen ortam değişkenlerini kullanabilirsiniz.
Rake .env
belirlenen açık değerine güvenmek ve böylece bunları (örn dev vb testi, evreleme, üretim,) kullanarak size planladığınız her ortam için ayrı .env
dosyası oluşturmanız gerekir.
Numune Rakefile
:
require 'dotenv'
Dotenv.load
: Eğer Rack veya Sinatra uygulamasından (muhtemelen yapmak) içinde ortam değişkenleri kullanmak istiyorsanız
require 'dotenv/tasks'
task :default => :help
desc 'Show this help menu'
task :help do
puts "Available rake tasks:"
system('rake --tasks')
end
# Will run in any environment
desc 'Demo task'
task :demo_task => :dotenv do
puts "Running demo task in '#{ENV['ENVIRONMENT']}' mode"
end
# Will only run if ENVIRONMENT value in .env file is set to 'production'
desc 'Production-only task'
task :production_task => :dotenv do
if ENV['ENVIRONMENT'] == 'production'
puts "Running 'Production-only' task"
else
puts "Won't run, because the environment is not set to PRODUCTION!"
end
end
# Will only run if ENVIRONMENT value in .env file is set to 'development'
desc 'Development-only task'
task :dev_task => :dotenv do
if ENV['ENVIRONMENT'] == 'development'
puts "Running 'Development-only' task"
else
puts "Won't run, because the environment is not set to DEVELOPMENT!"
end
end
, uygulamanın genelinde veya önyükleme bloğu aşağıdakileri ekleyin
http://stackoverflow.com/questions/2715035/rails-env-vs-rails-env – ted
@ted, bağlantı Raylar içinde raf ortamının kullanımı ile ilgili olup, tırmık konusundan hiç söz etmez. Nasıl uygulanır? –
Lütfen bu farklı Rake görevlerini görüntüleyin. Belki bir kod görürsek yardım edebiliriz. – robkuz