1

问候智者,

我正在尝试在 Rails 3 中使用 MiniMagick 和 CarrierWave 来根据此处的说明调整和存储图像:http: //carrierwave.rubyforge.org/rdoc/classes/CarrierWave/MiniMagick.html

我可以不经处理就上传图片。图像已上传,我可以在目录和应用程序中看到它。但是当我尝试对图像执行处理时,manipulate!永远不会调用 block inside 方法。你知道我怎么能解决这个问题吗?

我有以下有效的上传器:

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!没有。这怎么可能发生?您将如何解决此问题?

附加信息:我在 config/initializers/carrierwave.rb 中有以下代码,所以我相信处理已启用:

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

我在用:

  • 导轨 3.2.12
  • 载波 0.8.0
  • MiniMagick 3.5.0
4

0 回答 0