ActiveStorage: запись возвращается прикрепленной? как правда, но капля ноль. Как мне удалить «призрачное» вложение? Как это случилось? - PullRequest
0 голосов
/ 08 мая 2018

Это в производственном приложении. Я подозреваю, что что-то произошло во время загрузки файла (прямая загрузка в S3), и большой объект не был создан должным образом.

Теперь в некоторых случаях происходит сбой приложения, и я пытаюсь удалить «призрачное» вложение, не удаляя родительскую запись. Это возможно?

irb(main):020:0> s2.presentation_file.attached?
=> true

irb(main):021:0> s2.presentation_file.attachment
=> #<ActiveStorage::Attachment id: 362, name: "presentation_file", record_type: "Speaker", record_id: 219, blob_id: 369, created_at: "2018-05-06 19:44:06">

irb(main):022:0> s2.presentation_file.attachment.blob
=> nil

irb(main):023:0> s2.presentation_file.purge
NoMethodError: undefined method `purge' for nil:NilClass
from (irb):23

1 Ответ

0 голосов
/ 16 августа 2018

Я понятия не имею, как это произошло, но вы можете прикрепить какое-то изображение, просто чтобы очистить его, тем самым исцелив представление:

s2.presentation_file.attach(io: File.open("placeholder.jpg"), filename: 'placeholder.jpg')
s2.presentation_file.purge
...