bucket.rb:885:in `extract_name': Cannot load `Rails.config.active_storage.service`: (ArgumentError) missing required option :name

herokuにデプロイしたいけどエラーが発生


やりたいこと

git push heroku main
heroku open

でherokuにデプロイしたい。


エラー内容

heroku run rails c

エラー原因を調べると

bucket.rb:885:in `extract_name': Cannot load `Rails.config.active_storage.service`: (ArgumentError)
missing required option :name

このようなエラーが発生。このエラーを解決しherokuにデプロイしたい。


調査

teratail.com

dev.to


原因

  • s3にseacret_key等の記載ミスがあると思いEDITOR="vi" bin/rails credentials:editでcredentials.yml.encの内容を確認したが、おかしい所が見当たらなかった。

storage.yml

amazon:
  service: S3
  access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
  secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>c

storage.ymlを確認するとsecret_access_keyの末尾にいらない文字を発見。 これを修正して、再度

git push heroku main
heroku open 

を実行すると無事デプロイできました。