使用 Windows,Rails v3.2.11,Ruby v1.9.3p0,Paperclip AFAIK 的最新稳定版本。
文件名:“2011-rosé-750mL.png”
我正在尝试更新我的网站,在此过程中,我需要将回形针存储的所有图像(原件)移动到不同的位置。所以基本上我正在阅读每个原始文件并设置附件,然后在模型上运行保存。显然,回形针保存带有重音字符的上传文件没有任何问题,但是当通过引用带有重音字符的名称来保存新文件时,会发生一些不好的事情。
例子:
w = Wine.find(19)
w.photo = File.open("D:/Files/Websites/rails3.website/public/images/store/products/original/2011-rosé-750mL.png", 'rb')
w.save :validate => false
大多数升级过程都有效,直到我得到一个具有上述名称的文件。我得到的错误是:没有这样的文件或目录 - .../2011-rosé-750mL
我能想到的只是它与名称中文件的字符编码有关 - 这样当回形针在保存时尝试读取文件时,它不会使用正确的字符。File.open(source, 'rb')
实际上有效(不会抛出任何错误),只是在保存模型时才会出现此错误。查看错误消息,它引用的是原件的保存目录,而不是我执行时正在读取的目录File.open()
;所以它在某个地方,但似乎超出了我的控制(Paperclip internals)。