3

我配置了我的Rails應用程序以使用Carrierwave進行圖像上傳。根據文檔,我包含了適用於多文件上傳的gem版本。在Carrierwave上傳器中,我包含了Minimagick。當我嘗試使用#resize_to_fill方法,我得到以下錯誤,並上傳失敗:Carrierwave #Resize_to_fill不適用於Minimagick(僅適用於rMagick)

ActiveRecord::RecordInvalid: Validation failed: Images translation missing: en.errors.messages.mini_magick_processing_error 

然而,當我從Minimagick切換到Rmagick,它完美的作品?如果可能,我寧願使用Minimagick。另一個奇怪的是像#resize_to_fit這樣的其他方法與Minimagick和Rmagick完美合作。有沒有人有這個問題?

這裏有重要的文件:

的Gemfile

gem 'rails',     '5.0.1' 
gem 'bcrypt',     '3.1.11' 
gem 'faker',     '1.6.6' 
gem 'carrierwave',    github: 'carrierwaveuploader/carrierwave' 
gem 'mini_magick',    '4.5.1' 
# gem 'rmagick',    '~> 2.15', '>= 2.15.4' 
gem 'fog',      '1.38.0' 
gem 'will_paginate',   '3.1.0' 
gem 'bootstrap-will_paginate', '0.0.10' 
gem 'bootstrap',   '~> 4.0.0.alpha6' 

source 'https://rails-assets.org' do 
    gem 'rails-assets-tether', '>= 1.3.3' 
end 

gem 'puma',     '3.4.0' 
gem 'pg', '0.18.4' 
gem 'sass-rails',    '5.0.6' 
gem 'uglifier',    '3.0.0' 
gem 'coffee-rails',   '4.2.1' 
gem 'jquery-rails',   '4.1.1' 
gem 'turbolinks',    '5.0.1' 
gem 'jbuilder',    '2.4.1' 

group :development, :test do 
    gem 'byebug', '9.0.0', platform: :mri 
end 

group :development do 
    gem 'web-console',   '3.1.1' 
    gem 'listen',    '3.0.8' 
    gem 'spring',    '1.7.2' 
    gem 'spring-watcher-listen', '2.0.0' 
end 

group :test do 
    gem 'rails-controller-testing', '0.1.1' 
    gem 'minitest-reporters',  '1.1.9' 
    gem 'guard',     '2.13.0' 
    gem 'guard-minitest',   '2.4.4' 
end 

上傳/ images_uploader.rb

class ImagesUploader < CarrierWave::Uploader::Base 
    # Include RMagick or MiniMagick support: 

    # include CarrierWave::RMagick (only this one works) 
    include CarrierWave::MiniMagick 

    process resize_to_fill: [900, 600] 

    if Rails.env.production? 
    storage :fog 
    else 
    storage :file 
    end 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

兩個Minimagick和Rmagick應根據支持#resize_to_fill文檔a就像我在網上看到的很多例子一樣。我也試過使用不同版本的Carrierwave和Minimagick,但沒有任何工作。我也嘗試重新安裝Imagemagick。依然沒有。

有人可以幫忙!另外,如果我不能讓Minimagick工作,Rmagick真的不好用嗎?人們真的反對我所看到的。謝謝!

回答

-1

如果您要通過遠程URL添加圖片,可能還會驗證您是否使用圖片的直接鏈接,例如,來自雲端應用程序的縮短網址可能無法使用。

+0

這是比較合適的評論,你的回答不是一個實際的答案 –

+0

這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/18987106) –

相關問題