hamayuzinの日記

エンジニアとかデータサイエンティストとかやってます。あの時 あれやってたな的な備忘録にできれば。

【Rails/secrets】Railsのinitializesでsecrets.ymlにある値を使う方法

環境:Rails5.1

carrierwave 等の initializeで secrets.yml (rails5.1からは、secrets.yml.enc)を使いたい。 そんなときに、いろんな方法があるが、下記みたな方法もある。

今回は、carrierwave の initializeで secrets.ymlから awsの情報取ってくる。

environmentsにenvで設定してしまう

config/environments/production.rb

Rails.application.configure do
  # hogehoge
end
ENV['aws_access_key_id'] = Rails.application.secrets.aws[:access_key_id]
ENV['aws_secret_access_key'] = Rails.application.secrets.aws[:secret_access_key]

config/initializers/carrierwave.rb

CarrierWave.configure do |config|
  config.fog_credentials = {
    provider: 'AWS',
    aws_access_key_id: ENV['aws_access_key_id'],
    aws_secret_access_key: ENV['aws_secret_access_key'],
    region: 'ap-northeast-1'
  }
  config.fog_directory = 'hogehoge'
  config.asset_host = 'hugahuga'
end