2012-02-13 3 views
3

현재 환경 변수를 액세스 할 수있는 AppConfig 해시에 config.yml 파일을로드하기 위해 초기화 프로그램을 사용하고 있습니다. 프로덕션 환경에서는 서버에 환경 변수를 설정하고 있습니다. 환경 변수가 설정되지 않은 경우 (예 : 개발 및 테스트) 다음 코드를 사용하여 구성 변수로 대체합니다.레일스 환경 파일에서 사용할 수있는 구성 변수

ENV['FACEBOOK_API_KEY'] || AppConfig['facebook_api_key'] 

내 문제는 이러한 변수 중 일부는 환경 특정 파일 (development.rb/production.rb 등)에서 사용할 수 있어야하지만,이 파일이 initialzers 전에로드된다는 점이다. 어떻게해야합니까?

답변

8

Configuration Initialization Events에 대한 레일 가이드를 살펴보십시오. 이러한 종류의 구성을 수행 할 때 연결할 수있는 이벤트가 있습니다. 당신이 database.yml 같은 2 계층 구조를 만들 수있는 방법을 항상 각 환경에 대해 별도의 구성을 정의 할 수가 있다면

#config/environments/development.rb 
YourApp::Application.configure do 
    config.after_initialize do 
    #do some configuration after all initialisers have run 
    end 
end 
+0

감사합니다. 그것은 내가 필요로했던 바로 그 것이었다. 실제로 after_initialize NOT after_initializion btw. – Undistraction

+0

하 - 감사합니다. 나는 미국식 스타일의 맞춤법을 생각하고 있었고 손가락은 초기화를 입력하기로 결정했습니다. – roo

0

: 당신이 초기화 후에 수행 환경을 구성 할 수 있습니다 한마디로

동일한 파일을 선택한 다음 해당 버전을 참조하십시오.

ENV['FACEBOOK_API_KEY'] || AppConfig[Rails.env] && AppConfig[Rails.env]['facebook_api_key'] 
+1

고마워요.하지만 실제로는 제가하고있는 일입니다. 환경에 별도의 해시를 사용하지 않고 한 번에 둘 이상의 구성 값을 저장하지 않아도됩니다. – Undistraction