ぞえの技術めも

Ruby on Rails勉強中

【162日目】【1日20分のRailsチュートリアル】【第11章】アップロード時に画像のリサイズを実施する

Ruby on Railsチュートリアル(第3版)

今日は「11.4.3 画像のリサイズ」から。

11.4.3 画像のリサイズ

ファイルサイズに対するバリデーション (11.4.2) はうまくいきましたが、画像サイズ (縦横の長さ) に対する制限はないので、大きすぎる画像サイズがアップロードされると図11.21のようにレイアウトが壊れてしまいます。

そうそう、レイアウトが崩れちゃうんですよね~。(実践済み)

画像をリサイズするためには、画像を操作するプログラムが必要になります。今回はImageMagickというプログラムを使うので、これを開発環境にインストールしておく必要になります。 Cloud IDEでは下記コマンドでImageMagickをインストール。

インストール途中で続けていいか聞かれるのでYを入力。

$ sudo apt-get update
$ sudo apt-get install imagemagick --fix-missing

次に、MiniMagickというgemを使って、CarrierWaveからImageMagickを使えるようにします。

元々生成されてたinclude文をコメントアウトして、縦横どちらかが400pxを超えていた場合、適切なサイズに縮小するオプションを追加。
これだけでリサイズできちゃうの…?

app/uploaders/picture_uploader.rb

  :
  # Include RMagick or MiniMagick support:
  # include CarrierWave::RMagick
  include CarrierWave::MiniMagick
  process resize_to_limit: [400, 400]
  :

気になるので動作見てみよう。

サーバーを起動して

$ rails server -b $IP -p $PORT

前と同じ画像をアップロードしてみる。

f:id:kt_zoe:20170712123425p:plain

わー!リサイズできてる!!いい感じ!

画像のアップロード時にリサイズするのですでにアップロードしてるやつには適用されないよう。残念なままで残しておくか。。。。

今日の学習時間は【22分】

次は「11.4.4 本番環境での画像アップロード」、、、と見せかけて、本番環境はそもそもアカウント登録できない(メール機能追加してない)のでこの項はスルーかな。
また本番環境作りたい!と思ったときにでも読みます。

というわけで次は「11.5 最後に」から。いよいよ第11章も終わりが近づいてきた…!