【发布时间】:2013-09-29 21:36:45
【问题描述】:
使用 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)。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 character-encoding paperclip