CarrierWave RMagick - 我如何引起操纵!被称为?

时间:2013-03-19 15:28:43

标签: ruby-on-rails-3 carrierwave image-resizing minimagick

问候聪明的人,

我正在尝试在Rails 3中使用带有CarrierWave的MiniMagick来根据此处的说明调整大小并存储图像: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!内的块不是。怎么会发生这种情况?你会如何解决这个问题?

其他信息: 我在config / initializers / carrierwave.rb里面有以下代码,所以我相信处理已启用:

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

我正在使用:

  • Rails 3.2.12
  • CarrierWave 0.8.0
  • MiniMagick 3.5.0

0 个答案:

没有答案
相关问题