この記事は私の学習の保存用のために書いている記事になります。新しく学んだ内容をアウトプットして残していき充実した学習をしていきたいと思います。
説明の不足や間違っている情報などがあればご指摘いただけると幸いです。よろしくお願いします。
そもそもActiveStorageとは?
Railsで画像の投稿や表示を行うもので画像は通常のカラムとして保存できないため特別な保存方法が必要となり、それを行うのがActiveStorageです。
ActiveStorageをインストールする
以下のコマンドでActiveStorageをインストールする
$ rails active_storage:install
インストールが終わるとマイグレーションファイルが自動で追加される。マイグレーションファイルをmigrateするために以下のコマンドを入力
$ rails db:migrate
以上がマイグレーションファイルができたときの基本の流れで、カラムを追加する必要があれば追加してから「rails db:migrate」を行う。
モデルに記述を追加
ActiveStorageを使用する際は画像を表示したいモデルに宣言しておかないと画像が使えない。
以下の記述をモデルに記述しておくことでモデルにカラムが追加されている状態になり画像の表示が可能になる
has_one_attached :image
コントローラ内のストロングパラメータにimageカラムを追加
private
def モデル名_params
params.require(:モデル名).permit(:image)
end
以下のような記述で画像を表示することが可能
<%= image_tag モデル名:image, size:"〇〇x〇〇" %>