我正在尝试复制附件,使用新的 Rails 6 语法下载文件
if original.attachment.attached?
original.attachment.open do |tempfile|
clone.attachment.attach({
io: tempfile,
filename: original.attachment.blob.filename,
content_type: original.attachment.blob.content_type
})
end
end
我收到此错误:IOError (closed stream)
如果我在执行期间检查/tmp/文件夹,则临时文件副本就在那里。我不知道为什么会引发此错误。
我在macOS 10.13 High Sierra上运行Rails 6.0.0和ruby 2.6.5p114
好的,我找到了答案。在 rails 6 中,您必须在附加时再次打开临时文件,如下所示:
io: File.open(tempfile.path),
希望这对任何有相同问题的人有所帮助。