는 사실 ENV를 사용하여, 귀하의 질문에서 힌트를했다.
필자는 3 가지 비밀 값을 갖고 싶지 않았습니다. 그것들은 물론 앱의 비밀 토큰이자 트위터의 소비자 키와 비밀이다. 내 비밀 토큰 initializer에 :
KinTwit::Application.config.secret_token = ENV['SECRET_TOKEN']
Twitter.consumer_key = ENV['CONSUMER_KEY']
Twitter.consumer_secret = ENV['CONSUMER_SECRET']
나는 Heroku에서 내 프로젝트를 호스팅하고 있습니다. 그래서 나는 이것을 Heroku에 구성 변수로 추가했습니다.
[03:07:48] [[email protected] ~/dev/rwc/kintwit]$ heroku config:add CONSUMER_KEY=ub3rs3cr3tk3y
Adding config vars and restarting app... done, v7
CONSUMER_KEY => ub3rs3cr3tk3y
[03:08:40] [[email protected] ~/dev/rwc/kintwit]$ heroku config:add CONSUMER_SECRET=ub3rs3cr3tk3y
Adding config vars and restarting app... done, v8
CONSUMER_SECRET => ub3rs3cr3tk3y
[03:08:57] [[email protected] ~/dev/rwc/kintwit]$ heroku config:add SECRET_TOKEN=ub3rs3cr3tk3y
Adding config vars and restarting app... done, v9
SECRET_TOKEN => ub3rs3cr3tk3y
이제 다음 번에 값을 입력 할 준비가되었습니다. 그러나, 당신이 Heroku를 사용하지 않는다면 어떨까요? 나는 분명히 모든 단일 레일 전개 (jeesh, 심지어 Heroku 프로조차도)에 대한 전문가는 아니지만,이 예는 db : migrate 테스트를 수행하는 것입니다.
$ RAILS_ENV=test rake db:migrate
= 키 값 쌍 명령 따라서이 명령 실행 환경 변수를 설정하기 전에, echo ENV['RAILS_ENV']
test
는 인쇄한다. 그래서 이것은 당신의 환경에서 당신이 그것을 어떻게 할 것인지 설정됩니다. 하지만 환경 변수는 코드에 포함되어 있지 않으므로 트릭입니다.
출처
2012-02-15 09:22:30
wjl
좋은 조언. 또한 히스토리를 제거하지 않으려는 경우 가능하다면 새로운 배포 후에 값을 변경하고 (.gitignore를 통해 숨겨진 후에) 값을 변경하면 이전 값이 쓸모 없게됩니다. 물론 이것은 임계 값 중 하나를 변경하는 것을 잊어 버리면 쇠약해질 수 있기 때문에 실패하기 쉽습니다. – jefflunt
이 답변은 아직 투표를하고 있기 때문에 오늘 어떻게해야 할지를 업데이트해야한다고 생각합니다. https://github.com/bkeepers/dotenv –