IOError (закрытый поток) в ActiveStorage :: Attached :: One # attach (Rails 6) - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь продублировать прикрепленный файл, используя новый синтаксис 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 / во время выполнения, там будет временная копия. Я не знаю, почему возникает эта ошибка.

Я использую Rails 6.0.0 и ruby 2.6.5p114 на macOS 10.13 High Sierra

1 Ответ

1 голос
/ 18 января 2020

Хорошо, я нашел ответ. В рельсах 6 вы должны снова открыть временный файл, когда присоединяете, как это:

io: File.open(tempfile.path),

Надеюсь, это поможет любому с той же проблемой.

...