1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Active Storageを用いた画像投稿(単数枚)

1
Last updated at Posted at 2021-03-27

目次

①結論
②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ライブラリとして利用する。非常に多くの画像フォーマットに対応し、豊富かつ高機能な画像処理機能を提供されている。

imagemagickのインストール方法
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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?