Я хочу изменить размер изображения, прежде чем оно будет сохранено. В настоящее время это делается в контроллере:
shrink = MiniMagick::Image.new(params[:user][:photo].tempfile.path)
shrink.resize "500x500"
Это работает, но не выглядит слишком худым. Я предпочел бы иметь это в модели, которая, я полагаю, будет выглядеть примерно так:
before_save :resize_image
def resize_image
shrink = MiniMagick::Image.new(self.photo)
shrink.resize "500x500"
end
This; однако выдает ошибку:
`magick mogrify -resize 500x500 #<ActiveStorage::Attached::One:0x00007ffc866418d0>` failed with error:
mogrify: unable to open image '#<ActiveStorage::Attached::One:0x00007ffc866418d0>': No such file or directory @ error/blob.c/OpenBlob/3496.
mogrify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/562.
excluded from capture: Not configured to send/capture in environment 'development'
Я пробовал варианты, такие как self.photo.path
, но до сих пор не смог найти метод, работающий для активного объекта хранилища. Что мне не хватает? Правильно ли я предположить, что нечто подобное относится, в первую очередь, к модели, а не к контроллеру?