Ruby on rails Carrierwave MiniMagick裁剪多个版本

Ruby on rails Carrierwave MiniMagick裁剪多个版本,ruby-on-rails,carrierwave,minimagick,Ruby On Rails,Carrierwave,Minimagick,我正在用minimagick用carrierwave做一些修剪。我有3种尺寸,目前裁剪适合大尺寸,但较小尺寸的似乎忽略了裁剪后的图像,并根据原始图像调整大小 class PhotoUploader < CarrierWave::Uploader::Base include CarrierWave::MiniMagick include CarrierWave::Processing::MiniMagick version :thumb, from_version: :mediu

我正在用minimagick用carrierwave做一些修剪。我有3种尺寸,目前裁剪适合大尺寸,但较小尺寸的似乎忽略了裁剪后的图像,并根据原始图像调整大小

class PhotoUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  include CarrierWave::Processing::MiniMagick
  version :thumb, from_version: :medium do
    process resize_to_fill: [100, 100]
  end

  version :medium, from_version: :large do
    process resize_to_fill: [261, 163]
  end

  version :large do
    process :conversion
  end

  # ... some methods
  private

  def conversion
    manipulate! do |img|
      img.format('JPG')
      img.strip
      if model.croppable?
        img.crop("#{model.w}x#{model.h}+#{model.x}+#{model.y}")
      end
      img = yield(img) if block_given?
      img
    end
  end
end
类PhotoUploader
我如何告诉介质从裁剪的大版本调整填充大小,而不是原始版本?

正如@PinnyM所建议的,这是指定版本的顺序

class PhotoUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  include CarrierWave::Processing::MiniMagick

  # Specify this first!
  version :large do
    process :conversion
  end

  version :medium, from_version: :large do
    process resize_to_fill: [261, 163]
  end

  version :thumb, from_version: :medium do
    process resize_to_fill: [100, 100]
  end

  #... everything else
end
类PhotoUploader您使用的carrierwave版本是什么?此外,您可能希望尝试颠倒列出这些版本的顺序。。。(例如,先放大的,然后放中的,然后放拇指)gem'carrierwave',0.9.0'gem'carrierwave mongoid',0.6.3',require:'carrierwave/mongoid'gem'carrierwave processing','~>0.0.2'我将尝试颠倒顺序。我没有想到那个。