質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

5024閲覧

[Rails Tutorial 6版] 第13章 MiniMagick::Errorで画像が表示・リサイズがうまくいきません

Hamadust

総合スコア5

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2021/05/14 07:57

前提・実現したいこと

Rails Tutorial 6版の13章を学習中です。
13.4.3 画像のリサイズ で詰まってしまいました。

環境

  • cloud9
  • Ubuntu
  • Ruby 2.6.3
  • Rails 6.0.3

テキストに従い、解像度の高い画像をPOSTした場合に 500×500 にリサイズするコードを実装したのですが、
画像が表示されません。(解像度が500×500以下の画像も表示されませんでした)

発生している問題・エラーメッセージ

イメージ説明

サーバーログ

console

1Started GET "/rails/active_storage/representations/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBEdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8049b357a9c99d1b46eb3657a88fd07281c32c1c/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VY21WemFYcGxYM1J2WDJ4cGJXbDBXd2RwQXZRQmFRTDBBUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--b225bf779cb502d6b69d157acb58ecc9317a5e8a/2021-04-29%204.13.08.png" for 133.203.88.150 at 2021-05-14 06:50:07 +0000 2Cannot render console from 133.203.88.150! Allowed networks: 127.0.0.0/127.255.255.255, ::1 3Processing by ActiveStorage::RepresentationsController#show as PNG 4 Parameters: {"signed_blob_id"=>"eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBEdz09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8049b357a9c99d1b46eb3657a88fd07281c32c1c", "variation_key"=>"eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VY21WemFYcGxYM1J2WDJ4cGJXbDBXd2RwQXZRQmFRTDBBUT09IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--b225bf779cb502d6b69d157acb58ecc9317a5e8a", "filename"=>"2021-04-29 4.13.08"} 5 ActiveStorage::Blob Load (0.1ms) SELECT "active_storage_blobs".* FROM "active_storage_blobs" WHERE "active_storage_blobs"."id" = ? LIMIT ? [["id", 10], ["LIMIT", 1]] 6 Disk Storage (0.1ms) Checked if file exists at key: variants/0sl3ywzw5z5bhpbk5oppyba5ais8/832cd753dec108850b94848f16610d720c16839cdfeb09b722b876693f1c6e03 (no) 7 Disk Storage (0.5ms) Downloaded file from key: 0sl3ywzw5z5bhpbk5oppyba5ais8 8Completed 500 Internal Server Error in 10ms (ActiveRecord: 0.1ms | Allocations: 2918) 9 10 11 12MiniMagick::Error (You must have ImageMagick or GraphicsMagick installed): 13 14mini_magick (4.9.5) lib/mini_magick/configuration.rb:147:in `cli' 15mini_magick (4.9.5) lib/mini_magick.rb:38:in `imagemagick7?' 16mini_magick (4.9.5) lib/mini_magick/tool.rb:133:in `executable' 17mini_magick (4.9.5) lib/mini_magick/tool.rb:108:in `command' 18mini_magick (4.9.5) lib/mini_magick/tool.rb:90:in `call' 19image_processing (1.9.3) lib/image_processing/mini_magick.rb:55:in `save_image' 20image_processing (1.9.3) lib/image_processing/processor.rb:23:in `call' 21(省略)

該当のソースコード

console

1$ sudo apt-get -y install imagemagick

Gemfile

1source 'https://rubygems.org' 2git_source(:github) { |repo| "https://github.com/#{repo}.git" } 3 4gem 'rails', '6.0.3' 5gem 'image_processing', '1.9.3' 6gem 'mini_magick', '4.9.5' 7gem 'active_storage_validations', '0.8.2' 8. 9. 10.

ruby

1# app/models/micropost.rb 2 3class Micropost < ApplicationRecord 4 belongs_to :user 5 has_one_attached :image 6 default_scope -> { order(created_at: :desc) } 7 validates :user_id, presence: true 8 validates :content, presence: true, length: { maximum: 140 } 9 validates :image, content_type: { in: %w[image/jpeg image/gif image/png], 10 message: "must be a valid image format" }, 11 size: { less_than: 5.megabytes, 12 message: "should be less than 5MB" } 13 14 # 表示用のリサイズ済み画像を返す 15 def display_image 16 image.variant(resize_to_limit: [500, 500]) 17 end 18end

ERB

1<!-- app/views/_micropost.html.erb --> 2 3<li id="micropost-<%= micropost.id %>"> 4 <%= link_to gravatar_for(micropost.user, size: 50), micropost.user %> 5 <span class="user"><%= link_to micropost.user.name, micropost.user %></span> 6 <span class="content"> 7 <%= micropost.content %> 8 <!-- 画像を表示 --> 9 <%= image_tag micropost.display_image if micropost.image.attached? %> 10 </span> 11 <span class="timestamp"> 12 Posted <%= time_ago_in_words(micropost.created_at) %> ago. 13 <% if current_user?(micropost.user) %> 14 <%= link_to "delete", micropost, method: :delete, 15 data: { confirm: "You sure?" } %> 16 <% end %> 17 </span> 18</li>

試したこと

Rails server再起動
apt-get update

補足情報(FW/ツールのバージョンなど)

チュートリアルのテキスト通りにコードを書き直しているので、誤字脱字等はないかと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決いたしました。
コマンド実行時のメッセージを正しく読み取れていなかったことが原因でした。

console

1$ sudo apt-get install imagemagick 2 3Reading package lists... Done 4Building dependency tree 5Reading state information... Done 6You might want to run 'apt --fix-broken install' to correct these. 7The following packages have unmet dependencies: 8 imagemagick : Depends: imagemagick-6.q16 (>= 8:6.9.2.10+dfsg-2~) but it is not going to be installed 9 linux-headers-aws : Depends: linux-headers-5.4.0-1045-aws but it is not going to be installed 10E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

何やら依存関係に問題があったようです。
この部分を見落としていました。

OSから促された通りに以下のコマンドを実行したのち、

console

1$ sudo apt --fix-broken install

再度、ImageMagickをインストール。

$ sudo apt-get install imagemagick

ImageMagickをインストールすることができました。
アプリケーションの動作も期待通りのものになりました。

投稿2021/05/15 02:39

Hamadust

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問