SORU
6 ŞUBAT 2011, Pazar


Benim kod rails geliştirme ortamı için ORTAM değişkenlerini ayarlamak mümkün mü?

Üzerinden bash ENV benim değişkenlerini biliyorum

export admin_password = "secret"

Ama bir şekilde benim raylar bunu yapmak için bir yerde kaynak kodu var mı? Benim ilk denemem environment/development.rb böyle bir şey oldu

ENV['admin_password'] = "secret"

Ama işe yaramadı. Bunu yapmanın bir yolu var mı?

CEVAP
6 ŞUBAT 2011, Pazar


[Güncelleme]

"Eski cevap" genel sorunları için, bu bölüm yorum gelen açıklama sonra belirli bir soruyu cevaplamak için çalışır. altında çözüm süre

Tam olarak Sorunuzun içinde belirttiğiniz gibi ortam değişkenleri ayarlamanız gerekir. Örnek olarak, HTTP temel kimlik doğrulaması kullanan Heroku bir uygulamam var.

# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :authenticate

  def authenticate
    authenticate_or_request_with_http_basic do |username, password|
      username == ENV['HTTP_USER'] && password == ENV['HTTP_PASS']
    end
  end
end

# config/initializers/dev_environment.rb
unless Rails.env.production?
  ENV['HTTP_USER'] = 'testuser'
  ENV['HTTP_PASS'] = 'testpass'
end

Senin durumunda kullanırsınız

unless Rails.env.production?
  ENV['admin_password'] = "secret"
end

Sunucuyu yeniden başlatmayı unutma yapılandırmasını yeniden!

[Bir Cevap]

App genelinde yapılandırma için, aşağıdaki gibi bir çözüm düşünebilirsiniz:

Bir dosyaya erişmek mümkün olmak istiyorum seçenekleri: karma config/application.yml oluşturun

admin_password: something_secret
allow_registration: true
facebook:
  app_id: application_id_here
  app_secret: application_secret_here
  api_key: api_key_here

Şimdi, dosya config/initializers/app_config.rb oluşturun ve şunları içerir:

require 'yaml'

yaml_data = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config', 'application.yml'))).result)
APP_CONFIG = HashWithIndifferentAccess.new(yaml_data)

Şimdi, herhangi bir yerde uygulama, APP_CONFIG[:admin_password] ile birlikte, diğer tüm verileri erişebilirsiniz. (Başlatıcı içerir beri ERB.new, YAML dosyanızın ERB biçimlendirme içerebilir.)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dan Gately

    Dan Gately

    13 AĞUSTOS 2006
  • Hollyscoop

    Hollyscoop

    30 Ocak 2007
  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010