【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