IOError (closed stream) on ActiveStorage::Attached::One#atta



我正在尝试复制附件,使用新的 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),

希望这对任何有相同问题的人有所帮助。

最新更新