Невозможно отобразить изображение, используя вариант с гемом ActiveStorage image_processing - PullRequest
0 голосов
/ 26 сентября 2018

В настоящее время я работаю над приложением Rails 5.2.Когда я пытаюсь отобразить аватар профиля в show.html.erb шаблоне, используя variant, он не работает

<%= image_tag @profile.avatar.variant(resize_to_fit: [100, 100]) %>

, я получаю следующее enter image description here

Я не могу увидеть изображение.

Я установил gem 'image_processing', '~> 1.2' в свой Gemfile.

Также на application.rb Я добавил config.active_storage.variant_processor = :vips

Но все равно на бэкэнде я получаю ошибку 500:

Started GET "/rails/active_storage/representations/xxxx/steven.jpeg" for 127.0.0.1 at 2018-09-26 16:33:21 -0400
Processing by ActiveStorage::RepresentationsController#show as JPEG
  Parameters: {"signed_blob_id"=>"xxxxxx", "variation_key"=>"xxxxxx", "filename"=>"steven"}
  ActiveStorage::Blob Load (0.3ms)  SELECT  "active_storage_blobs".* FROM "active_storage_blobs" WHERE "active_storage_blobs"."id" = $1 LIMIT $2  [["id", 3], ["LIMIT", 1]]
  ↳ /Users/stevenaguilar/.rvm/gems/ruby-2.2.2/gems/activerecord-5.2.1/lib/active_record/log_subscriber.rb:98
  Disk Storage (0.1ms) Checked if file exists at key: variants/7rnyyMpZaqXT4RBNtzDqPFqS/477efe2eb62003af0b5b40ec71c56de636f58f942964d830feeed4057b8718a6 (no)
Completed 500 Internal Server Error in 3ms (ActiveRecord: 0.3ms)

Если я отредактирую на <%= image_tag @profile.avatar %>, я смогу увидеть исходное изображение.

вотPhoto модель:

 class Profile < ApplicationRecord
  belongs_to :user
  has_one_attached :avatar
 end

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Версия Rails, которую вы используете - 5.2, ActiveStorage версии не имеет опции variant_processor.

resize_to_fit - опция принадлежит image_processing.Вы устанавливаете драгоценный камень, но процессор установлен на mini_magick.см .: https://github.com/rails/rails/blob/v5.2.3/activestorage/app/models/active_storage/variant.rb#L117

Если вы хотите сохранить версию 5.2, вы должны следовать опциям, предоставленным mini_magick.см .: https://api.rubyonrails.org/classes/ActiveStorage/Variation.html

Если вы предпочитаете использовать image_processing, чтобы использовать удобные опции, вам следует обновить версию Rails до> = 6.

0 голосов
/ 24 ноября 2018

попробуйте это:

<%= image_tag @profile.avatar.variant(resize: "100x100") %>

...