RMagick无法打开我知道存在的文件

时间:2013-09-19 18:36:01

标签: ruby-on-rails imagemagick paperclip rmagick

我在after_update调用中在我的模型中运行此代码:

require 'rmagick'
file = photo.url(:thumb) #created by paperclip
img = Magick::Image.read(file).first

并且我无法打开文件`/assets/contacts/1/thumb/image.png'虽然该文件存在并且在整个应用程序的其余部分使用,所以我不怀疑权限是一个问题。 Rails正在查看我的资产目录以获取其他所有内容,我可以通过本地方框上的直接URL访问该图像,因此我知道它存在。我通过自制软件安装了ImageMagick,并运行了“识别 - 列表格式”,并且似乎也安装了格式。我已将它添加到gemfile并运行bundle install。我还可以尝试解决其他问题吗?

我如何知道RMagick认为是root的目录,还是有其他原因导致我无法读取该文件?我已经阅读了我在Google,论坛,Stack,IRC上找到的所有内容,似乎没有人能够得到答案。

1 个答案:

答案 0 :(得分:0)

Paperclip gem将上传的图像存储在公共文件夹中。因此,如果公用文件夹中的图像路径是:     联系人 - > 1 - >拇指 - > image.png

比,你应该使用路径'/ contacts / 1 / thumb / image.png'。因为,如果URL中没有正斜杠,那么默认情况下会在图像的资源文件夹中搜索。