Изменение размера изображения в Rails - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу изменить размер изображения, прежде чем оно будет сохранено. В настоящее время это делается в контроллере:

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, но до сих пор не смог найти метод, работающий для активного объекта хранилища. Что мне не хватает? Правильно ли я предположить, что нечто подобное относится, в первую очередь, к модели, а не к контроллеру?

...