Я не могу уничтожить прикрепленное изображение с помощью следующего кода:
@image = ActiveStorage::Blob.find(params[:id])
@image.purge
Однако я могу удалить прикрепленное изображение, если я сделаю это:
@image = ActiveStorage::Attachment.find(params[:id])
@image.purge
Моя модель выглядитнапример:
class Device < ApplicationRecord
has_many_attached :images
end
Когда я пытаюсь удалить изображение с помощью экземпляра Blob
, я вижу следующий откат при очистке, но при печати @image.errors.to_json
просто отображается пустой хэш.Однако я могу напечатать id
и другие атрибуты изображения, поэтому я уверен, что нахожу и пытаюсь удалить правильное изображение.
Вот мой консольный вывод для удаления Blob
:
ActiveStorage::Blob Load (0.2ms) SELECT "active_storage_blobs".* FROM "active_storage_blobs" WHERE "active_storage_blobs"."id" = ? LIMIT ? [["id", 23], ["LIMIT", 1]]
↳ app/controllers/rooms_controller.rb:68
(0.1ms) begin transaction
↳ app/controllers/rooms_controller.rb:69
ActiveStorage::Attachment Exists (0.3ms) SELECT 1 AS one FROM "active_storage_attachments" WHERE "active_storage_attachments"."blob_id" = ? LIMIT ? [["blob_id", 23], ["LIMIT", 1]]
↳ app/controllers/rooms_controller.rb:69
(0.1ms) rollback transaction
↳ app/controllers/rooms_controller.rb:69