前提・実現したいこと
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/ツールのバージョンなど)
チュートリアルのテキスト通りにコードを書き直しているので、誤字脱字等はないかと思います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。