🦍
Rails Active Storageとは(自己学習記録)
画像をアップロードする方法として,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