3

我刚开始使用CarrierWave,但无法让它正常运行。

在按照Rails Casts中所述设置所有内容后,我收到以下错误:No such file or directory - identify -quiet -ping /tmp/mini_magick20130519-13712-lxhans.jpg 注意:我知道Rails Cast 中的错字,并且我的代码中不存在该问题。

在我的开发环境中,我已经安装了libmagickwand-dev包,正在运行Rails 3.2.9,和Ruby 1.9.3p194,等等。我的 Gemfile 包括mini_magick.

传递给服务器的请求是这样的:

{"utf8"=>"✓",
 "authenticity_token"=>"8ugcdkjOy/5yeodhuTgMXYdrXlcu2xPjxWTvvRwKnWM=",
 "organization"=>{"logo"=>#<ActionDispatch::Http::UploadedFile:0x0000000426c3d0 @original_filename="leather-tshirt-weird-square.jpg",
 @content_type="image/jpeg",
 @headers="Content-Disposition: form-data; name=\"organization[logo]\"; filename=\"leather-tshirt-weird-square.jpg\"\r\nContent-Type: image/jpeg\r\n",
 @tempfile=#<File:/tmp/RackMultipart20130519-13712-1uvmtem>>,
 "name"=>"Test Org",
 "description"=>"blah",
 "timezone"=>"1"},
 "commit"=>"Create Organization"}

完整的跟踪位于此处: http: //pastebin.com/dW5j9NLt

在最初尝试了一些更高级的功能之后,我将代码简化为以下内容,但仍然没有运气:

class LogoUploader < CarrierWave::Uploader::Base

  include CarrierWave::MiniMagick

  storage :file

  version :thumb do
     process :resize_to_limit => [100, 100]
  end

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

编辑:我已将问题缩小到上传后修改图像的问题。如果我进一步简化代码以删除:thumb大小的创建,那么一切正常。想法?

4

3 回答 3

6

Not enough reputation to comment theflyingbrush's answer, but he is absolutely right. I had the same issue before noticing that I was actually missing imagemagick all together.

So on Debian/Ubuntu this will do the trick (or 'magick'):

apt-get install imagemagick

On operating systems with yum as packet manager (CentOS/RedHat) you'd be using:

yum install ImageMagick
于 2013-11-04T22:02:35.257 回答
0

您缺少存储位置。尝试在 storage :file 下添加它

  def store_dir
    "uploads/logo/#{model.id}"
  end
于 2013-06-13T05:15:56.720 回答
0

您是否明确安装了 ImageMagick?

在不安装 ImageMagick 的情况下使用 MiniMagick 时我遇到了同样的错误。据我了解,MiniMagick 将操作推迟到 mogrify 命令,所以如果你不能在命令行上调用 mogrify,MiniMagick 可能也不能。

*nix 爱好者可以更有信心地回答这个问题,但我认为 libmagickwand-dev 支持安装图形库,但实际上并不安装任何本身。

于 2013-10-29T13:14:37.230 回答