railsで画像のアップロード機能を作っているのですが、実際に画像をアップロードしたら
undefined method resize_to_limit'
というエラーが返ってきました。
その場合の対応策。
前提の条件
1:ImageMagickをインストールしている
1 |
$ brew install imagemagick |
で、画像の加工を行うためのライブラリImageMagickをインストールしています。
2:CarrierWaveとmini_magickをインストールしている
Gemfileに以下を記述
1 2 |
gem 'carrierwave' gem ‘mini_magick' |
carrierwaveは画像をアップロードするためのgem。
mini_magickは画像ファイルのサイズを変更するために使用するgem。
で、インストール。
1 |
$ bundle install |
3:アップローダーを作成
1 |
$ rails g uploader Image |
今回は、Imageという名前で作成。
4:作成したアップローダーに追記する
画像サイズの調整を行いたかったので、以下の追記。
1 |
process :resize_to_limit => [50, 50] |
?
なんか、=>がうまく表示されない。
数値を変えることで、アップロードした際の大きさを調整可能。
5:モデルにアップローダーを紐づける
今回は、Userモデルに紐づけたいので、app/models/user.rbに以下を記述。
1 2 3 |
class User < ApplicationRecord mount_uploader :icon, ImageUploader end |
Userモデルのiconカラムに紐づけています。
対応策
undefined method resize_to_limit’
ということは、画像サイズ調整の一文がいかんのでしょうが、しかし画像の調整は行いたい。
というか以前は出来ていた。
というわけで、以前作成したやつと何が違うのかを確認したところ、今回作成したアップローダーには以下の一文が抜けていました。
1 |
include CarrierWave::MiniMagick |
これがコメントアウトされているので、コメントアウトを外す。
するとエラーが解消されました。
以前は特にこの辺をいじった記憶がないのですが・・・
ただ忘れているだけかな?
コメント