0

我最近更新到 Paperclip 4 (具体来说是 4.1.1),其中有必要使用validates_attachment. 正如 GitHub 文档建议的那样,我尝试了 3 种方法:
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/ 以及线程中建议的 2 种方法。
所有案例都给我一个ActiveRecord::RecordInvalid例外,说图像的内容类型无效。

我在 Grape API 中使用这行代码创建图像:
image = ActionDispatch::Http::UploadedFile.new(params[:data])
它接收到的数据来自使用 ApacheHttpClient的AndroidMultipartEntityBuilder

它打印它运行的命令以检查 mime 类型,file -b --mime-type '/path/to/file但当我运行它时,它给了我图像/ jpeg

该类只有另外 2 行:
has_attached_file :image
attr_accessible :image

以及为什么它总是失败的想法?

4

2 回答 2

1

您可能想尝试进行一些测试以消除此处出现问题的变量:您可以尝试不同版本的回形针,~3.5 吗?Paperclip 4 仍有一些错误需要解决(我在自己的项目中注意到了这一点,它认为我的正常上传内容类型是欺骗性的)。

或者:您可以尝试以不同的方式创建图像,只是为了测试?您提供的验证码看起来是正确的。

于 2014-03-17T16:12:27.513 回答
1

我遇到了与您相同的问题(甚至尝试了线程建议的其他方式),并且 Rachel 对版本是正确的。Paperclip 4 存在一些欺骗问题。将其更改为 3.5 解决了我的问题。

顺便说一句,如果你仍然想让它工作,这似乎是这里讨论的问题(给出了解决方法)

于 2014-03-18T09:03:25.813 回答