search
LoginSignup
0
Help us understand the problem. What are the problem?

posted at

Rails ActiveStorageを使って画像を投稿する方法

この記事は私の学習の保存用のために書いている記事になります。新しく学んだ内容をアウトプットして残していき充実した学習をしていきたいと思います。
説明の不足や間違っている情報などがあればご指摘いただけると幸いです。よろしくお願いします。

そもそも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〇〇" %>

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?