今日の学習
今日学んだこと 2021/01/10
学習項目
画像のアップロード方法
学習内容
通常何もしない場合、画像はurlを入れて、任意の画像を表示できる。
自分のファイルにある画像を送る方法を学んだので、まとめていく。
まず、rails でファイルのアップロードができるgemはActive Storageで元々はインストールがが必要だっだらしいが、現在は必要ない。
画像に加工できるツール、gemのインストールを行う必要があり、
ImageMagick: コマンドラインから画像に処理を加えることができるツール
MiniMagick: ImageMagickの機能をRubyで扱えるようにしてくれるGem
ImageProcessing: MiniMagickでは提供できない、画像サイズを調整する機能を提供するGem
をそれぞれ、インストールする。
brew install imagemagick
MiniMagick、ImageProcessing はそれぞれ、Gemfileに記述
gem 'mini_magick' gem 'image_processing', '~> 1.2'
bundle install
その後、Active Storageのインストールし、マイグレーションファイルができるので、マイグレートする
rails active_storage:install rails db:migrate
保存したい、モデルとファイルを紐付ける
class モデル < ApplicationRecord has_one_attached :ファイル名 end
画像の表示は image_tag を使う
# ファイルをモデルから指定する場合 <%= image_tag モデル.画像ファイル %> <%= image_tag sample.image %> # app/assets/ディレクトリ下の画像ファイルパスでも指定できる <%= image_tag 画像ファイルのパス %> <%= image_tag "image.png" %> # 以下の記述で、画像が無い場合、表示しないようにできる <%= image_tag sample.image, if message.image.attached? %>
画像の加工は variantメソッド を使う
モデル.ファイル名.variant(resize: '幅x高さ')
まとめ
画像を送る手順を覚えれば、インスタも夢じゃない!!