CarrierWave RMagick - 如何使操作! 被称为?(CarrierWave R

2019-10-17 21:11发布

问候明智的人,

我想在Rails 3中使用MiniMagick与CarrierWave根据这些指令来调整和存储图像: http://carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html

我可以不处理上传图片。 图像上传,我可以看到它的目录和应用程序。 但是,当我试着对图像进行处理,该块内部manipulate! 方法永远不会被调用。 你知道我怎么能解决这个问题?

我有以下上传的作品:

class MyContentImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
end

有了这个代码,我可以用我的形式上传图片并查看结果页面上。 一切是桃色的。

我添加了一个简单的大小调整到这样的上传:

class MyContentImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  process resize_to_fit: [200,200]
end

添加过程调用后,图像不上传,但我还从来没有看到一个错误。 我试图将一个自定义方法添加到上传者,看到同样的结果:

class MyContentImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  def do_stuff:
    manipulate! do |img|
      img = img.resize_to_fit(200,200)
    end
  end
end

什么都没发生。 该图像不会在服务器上更新,但我从来没有看到一个错误。 我放了一些raise调用到do_stuff方法查看呼叫多远执行。 原来, do_stuff方法被调用,但块内manipulate! 不是。 这怎么可能发生? 你将如何解决这个问题?

附加信息:我有配置/初始化/ carrierwave.rb下面的代码里面,所以我相信启用处理:

CarrierWave.configure do |config|
    config.storage = :file
    config.enable_processing = true
end

我在用:

  • 3.2.12的Rails
  • CarrierWave 0.8.0
  • MiniMagick 3.5.0
文章来源: CarrierWave RMagick - How do I cause manipulate! to be called?