今回は、rails5.2.1.1でactive_storageを使用してamazon s3に画像をアップロードする際にUnknown keyword: content_typeが表示された時の対処法についてご紹介します。
active_storageとは
active_storageはrails5から追加された新機能です。
Active Storageを使用することによって、Amazon S3、Google Cloud Storage、Microsoft Azure Storageに直接画像をアップロードすることができる非常に便利な
機能です。従来であれば、carrierwaveやpaperclipなど使用して画像アップロードをしていたのですが、Active Storageを使用すれば不要になります。
詳しく知りたい方は以下のサイトをご参照ください。
今回やりたかったこと。
herokuにrailsアプリケーションをデプロイしたのですが、自動的にスリープモードになってしまうため、再度サイトにアクセスすると今までアップロードしてきた画像が表示されないという現象が発生。この現象を解消するためにはactive_storage活用してAWSやGCSに直接アップロードできるように実装する必要があります。また、私自身がactive_storageを使用したことがなかったので、実際に実装してみることにしました。
発生したエラー内容
active_storageに実装を終え、画像をアップロードしようとしたら以下のようなエラーが発生しました。
Unknown keyword: content_type
ググってみたところ、どうやらバージョンがrails5.2.1.1だとエラーが発生する模様。
ということで、gemの記載をrails5.2.1からrails5.2.2に変更しました。
gem 'rails', '~> 5.2.2'
gemfileの変更が完了したらbundle updateを実装し、再度画像をアップロードしてみるとエラーが解消されています。
参考サイト