##Carrierwaveとminimagick
画像アップロードするにはCarrierwaveを使います。
画像ファイルをリサイズするにはminimagickを使います。
ターミナル
$ brew install imagemagick
Gemfileの一番下に
〜省略〜
gem 'carrierwave'
gem 'mini_magick'
ターミナル
$ bundle install
ターミナル
$ rails g uploader image
【例】モデル名をMessageとします
class Message < ApplicationRecord
〜省略〜
mount_uploader :image, ImageUploader
end
class ImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
# storage :fog
# 〜省略〜
process resize_to_fit: [800, 800]
# 〜省略〜
end
まずは必要なgemを導入します。「carrierwave」と「minimagick」をGemfileに追記し、ターミナルからbundle installを実行覚ます。
次に、画像のアップローダーを作成します。ターミナルで、rails g uploader imageコマンドを実行すると、app/uploadersディレクトリ以下にimage_uploader.rbが作成されます。
次に、Messageモデルを編集しimage_uploaderをマウントする記述を行います。
最後に、image_uploader.rbを編集して、MiniMagick経由で画像のリサイズを行えるようにします。
「include CarrierWave::MiniMagick」のコメントアウトを外します。
その後、任意の箇所に「process resize_to_fit: [800, 800]」と追記します。
resize_to_fitは縦横比を維持したまま、縦横を800px以内にリサイズするという意味です。