🦍

Rails Active Storageとは(自己学習記録)

2024/10/29に公開

画像をアップロードする方法として,Railsに組み込まれている機能
機能を使用するためには、まず、以下のコマンドを実行する

rails active_storage:install

このコマンドを実行することでマイグレーションが生成される。
マイグレーションファイルなので、いつも通り

rails db:migrate

で適用される

次に指定のmodelとActive_storageを関連づける必要がある
指定のmodelに以下のコードを追記する

has_one_attached :image
または
has_many_attached :image

さらに画像アップロードためのフォームをページに追加

<%= f.file_field :image %>

最後にコントローラーにオブジェクトに画像を紐づける
具体的にはattachメソッドを使用する
フォームでPOSTリクエストされ、createアクションに送信されるので、
createアクション内のインスタンス変数に画像データをattachする

def create
   @micropost = current_user.microposts.build(micropost_params)
   @micropost.image.attach(params[:micropost][:image])

railsチュートリアル第13章から抜粋

これでview画面に画像を表示することができるようになった
```
<%= image_tag @microposts.image %>


ただし、画像のリサイズはされないので、別途gemを導入する必要がる
(例)imagemagick image_processing

Discussion