2

我在 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,并且我运行了“identify -list format”并且格式似乎也已安装。我已将它添加到 gemfile 并运行 bundle install 。我还可以尝试解决什么其他问题?

我怎么知道 RMagick 认为哪个目录是根目录,或者还有其他原因导致我无法读取文件?我已经阅读了我在 Google、论坛、Stack、IRC 上能找到的所有内容,但似乎没有人给出答案。

4

1 回答 1

0

Paperclip gem 将上传的图像存储在公共文件夹中。因此,如果您在公共文件夹中的图像路径是:contacts --> 1 --> thumb --> image.png

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

于 2013-12-03T13:02:57.247 回答