Ruby on rails 使用CarrierWave上传会导致;“没有此类文件”;错误

Ruby on rails 使用CarrierWave上传会导致;“没有此类文件”;错误,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我刚开始玩,我很难让它表现出来 按照中所述设置所有内容后,我收到以下错误:没有这样的文件或目录-identifite-quiet-ping/tmp/mini_magick20130519-13712-lxhans.jpg 注意:我知道,并且我的代码中不存在该问题 在我的开发环境中,我安装了libmagickwand-dev包,运行Rails 3.2.9,以及Ruby 1.9.3p194,等等。我的GEM文件包括mini\u magick 传递给服务器的请求如下所示: {"utf8"=>"✓

我刚开始玩,我很难让它表现出来

按照中所述设置所有内容后,我收到以下错误:
没有这样的文件或目录-identifite-quiet-ping/tmp/mini_magick20130519-13712-lxhans.jpg
注意:我知道,并且我的代码中不存在该问题

在我的开发环境中,我安装了
libmagickwand-dev
包,运行
Rails 3.2.9
,以及
Ruby 1.9.3p194
,等等。我的GEM文件包括
mini\u 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"}
{“utf8”=>“✓",
“真实性令牌”=>“8ugcdkjOy/5yeodhuTgMXYdrXlcu2xPjxWTvvRwKnWM=”,
“组织”=>{“徽标”=>#

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

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
类LogoUploader[100100] 结束 def扩展白名单 %w(jpg jpeg gif png) 结束 结束

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

您缺少存储位置。请尝试在storage:file下添加此内容

  def store_dir
    "uploads/logo/#{model.id}"
  end

您是否已明确安装ImageMagick

我在没有安装ImageMagick的情况下使用Minimagik时也遇到了同样的错误。据我所知,Minimagik将操作推迟到mogrify命令,因此如果您不能在命令行上调用mogrify,Minimagik可能也不能


一个*nix buff能够更加自信地回答这个问题,但我认为libmagickwand dev支持图形库的安装,但实际上它自己并不安装任何图形库。

没有足够的声誉来评论flyingbrush的答案,但他绝对正确。 我也有同样的问题,直到我注意到我实际上错过了imagemagick

因此,在Debian/Ubuntu上,这将起到作用(或“magick”):

在使用yum作为数据包管理器(CentOS/RedHat)的操作系统上,您将使用:

yum install ImageMagick

这个问题是针对一个文件还是一种格式?您知道在使用mini magick时是否创建了临时映像吗?
yum install ImageMagick