Я продолжаю получать
ActiveStorage::FileNotFoundError (ActiveStorage::FileNotFoundError):
app/models/service.rb:24:in `process_images'
При попытке загрузить изображение в ImageProcessing :: MiniMagick с помощью ImageProcessing::MiniMagick.source(self.image.download)
Я также пробовал
ImageProcessing::MiniMagick.source(self.image)
ImageProcessing::MiniMagick.source(self.image.attachment)
ImageProcessing::MiniMagick.source(self.image.attachment.download)
ImageProcessing::MiniMagick.source(self.image.blob)
ImageProcessing не нравятся им, поскольку он ищет URL-адрес, поэтому я попытался использовать URL-адрес, как этот url = Rails.application.routes.url_helpers.rails_blob_path(self.image, only_path: true)
, и передать его вместо self.image Когда я сделай это, я получаю сообщение об ошибке
failed with error:
convert: unable to open image `rails/active_storage/blobs/foo...`
Может кто-нибудь направить меня в правильном направлении.
вот соответствующая часть моей модели, как она выглядит сейчас.
class Service < ApplicationRecord
has_one_attached :image, dependent: :destroy
has_one_attached :featured_image, dependent: :destroy
after_create :process_images
after_save :process_images
private
def process_images
url = Rails.application.routes.url_helpers.rails_blob_path(self.image, only_path: true)
pipeline1 = ImageProcessing::MiniMagick.source(url)
#can't continue until I load an image
end
end
Я также вызвал метод из контроллера. Я сделал метод модели не частным и вызвал его, и он решил проблему с нулевым вложением. Следующее, но затем я получаю эту ошибку. ArgumentError (string contains null byte):
помечено в этой строке. pipeline1.resize_to_limit (400,400) .convert ("jpg"). call
Все, что я пытаюсь сделать, это изменить размер изображения при создании или обновлении экземпляра, а затем сохранить обработанное изображение как основное. вложение.