2013-10-03 49 views

回答

1

你可以在一個單獨的文件中爲你的所有密碼做到這一點,然後不檢查該文件到任何公共回購站。要做到這一點,你需要修改application.rb尋找與所有的密碼文件:

的config/application.rb中

... 
# Moving ENV variables into one place (config/application.yml) 
config = YAML.load(File.read(File.expand_path('../application.yml', __FILE__))) 
config.merge! config.fetch(Rails.env, {}) 
config.each do |key, value| 
    ENV[key] = value unless value.kind_of? Hash 
end 
... 
module Myapp 
    class Application < Rails::Application 
    ... 

配置/ application.yml(例如值)

## Rails 
SECRET_TOKEN: 'asdfasfce336863e6asdfasdfasdf917ba42e6580fbbd42c01f19364a8f463ed377e46851360e3f282b0cdaf7b6332ed9e292c5e98e01acsasdf' 

## Amazon 
AWS_ACCESS_KEY_ID: 'ascdaewecaewewf' 
AWS_SECRET_KEY: 'asdfasdcae/asdfac' 
AWS_REDIRECT_URL: 'aws/success' 

## Environment-specific 
development: 
    MAILER_HOST: "localhost:3000" 
    REDISTOGO_URL: 'redis://@localhost:6379' 
    S3_BUCKET_NAME: "myapp-staging" 

test: 
    MAILER_HOST: "test.local" 
    REDISTOGO_URL: 'redis://@localhost:6379' 
    S3_BUCKET_NAME: "myapp-staging" 

production: 
    MAILER_HOST: "myapp.com" 
    S3_BUCKET_NAME: "myapp" 
    S3_BUCKET_ADDRESS: "https://myapp.s3.amazonaws.com/" 

然後,您可以通過環境變量在整個應用中訪問此信息:

ENV['AWS_ACCESS_KEY_ID'] 

無論你通常會把密碼放在哪裏。

這可以很容易地在一個地方更改所有內容,並且更容易管理哪些開發人員可以查看敏感信息。

編輯

也有它一個很好的Railscast如果你有一個訂閱:http://railscasts.com/episodes/85-yaml-configuration-revised

相關問題