目次
①結論
②ActiveStorageとは
③ActiveStorageのインストール方法
④minimagickとは
⑤ImageMagickとは
⑥画像を保存するための準備をする
①結論
Active Storageをインスールし、ImageMagickをインスールした後gemfileにminimagickとImageProcessingを記述しbundle insatallし、画像の保存をできるように実装する。
②ActiveStorageとは
Active Storageとは、Rails5.2から追加されたファイルアップロード機能のこと。これを使用すると、ファイルのアップロードを容易にするメソッドを使えたり、画像を保存するテーブルをさくせいすることができる。
③ActiveStorageのインストール方法
rails active_storage:install
rails db:migrate
このとき、データベースで「active_storage_blobs」と「active_storage_attachments」という名前の2つのテーブルを作成される。
active_storage_blobsとは、アップロードファイルのメタ情報を管理するモデルのこと。
active_storage_attachments、該当モデルとblobsの中間テーブルに該当するモデルのこと。
④ImageMagickとは
画像処理ライブラリです。コマンドラインツールやAPIライブラリとして利用する。非常に多くの画像フォーマットに対応し、豊富かつ高機能な画像処理機能を提供されている。
brew install imagemagick
⑤minimagickとは
画像加工をしてくれるgemのこと
⑥ImageProcessingとは
画像サイズを調整する機能を提供するGemのこと
⑦画像を保存するための準備をする
・ActiveStrageのテーブルと該当するテーブルを紐付ける
class モデル名 << ApplicationRecord
has_one_attached :image
end
・ストロングパラメータで画像を保存できるようにする。
private
def create_params
params.require(:モデル名).permit(:カラム名, :image)
end
・画像が貼付されていなくてもエラーがでないようにする
<%= image_tag モデル名.image, if モデル名.image.attached? %>
上記のモデル名.image.attached?という意味は画像が存在する場合は、image_tagが読み込まれるようになるという記述。ちなみにimage_tagとは、railsで画像を表示するためのimgタグを作成するヘルパーメソッド。image_tagを使うことにより、簡単にimgタグを作成することができる。
※補足
Active StorageではVariantが呼び出されると、保存された元画像データを指定されたサイズに変換しそのURLを返すことができる。投稿画像が大きすぎる場合、ActiveStorageを導入していると、variantが使用し、リサイズすることができる。
◎参考記事
https://techtechmedia.com/active-storage-rails6/
https://qiita.com/kamohicokamo/items/c13f72d720040cfd796d