0

我正在使用带有 MiniMagick 的 CarrierWave 来调整大小和上传文件。我的上传器中有版本指令

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

但是当我上传文件时,操作失败。我得到的例外是

No such file or directory - identify -ping /var/folders/Au/AuBTXIH8HzCAhKdy0jvi+k+++TI/-Tmp-/mini_magick20120906-64039-1gx1ptu.jpg

我要上传的文件的名称是 hat.jpg。该/var/folders/Au/AuBTXIH8HzCAhKdy0jvi+k+++TI/-Tmp-/目录确实存在,但是当我进行上传时,我看不到正在创建有问题的文件。

关于问题可能是什么的任何建议?

编辑:我发现具体问题是 MiniMagick 正在生成一个命令来运行identify,并且没有找到识别命令。但它在我的系统上——它是/usr/local/bin/identify作为 ImageMagick 的一部分安装的。由于某种原因 MiniMagick 没有选择它。

4

2 回答 2

1

发现问题出在我的 RubyMine IDE 上,而不是我的应用程序、ImageMagick 或 MiniMagick。

似乎当 RubyMine IDE 启动时(通过双击 RubyMine 图标),它不会继承终端会话存在的 PATH。因此/usr/local/bin/,当我从 RubyMine 中启动 rails 服务器时,它不在我的服务器路径中。

从命令行启动服务器时,我能够成功运行我的应用程序。我还发现,如果我从命令行启动 RubyMine(使用open -a RubyMine),那么会继承终端会话并且一切都按预期工作。

于 2012-09-06T16:57:30.077 回答
0

添加到 /etc/paths 的顶部:

/usr/local/bin/

这将告诉 mac OS 新的 shell 应该有这个变量。我说要添加到顶部,因为使用自制软件,您通常会添加覆盖内置 mac 应用程序的路径

于 2012-09-26T19:26:51.600 回答