Не удается открыть вложение активного хранилища изображений с помощью minimagick Rails - PullRequest
0 голосов
/ 01 ноября 2019

Я искал везде безрезультатно.

Поэтому я использую Active Storage для обработки изображений моей модели.

Моя модель продукта выглядит следующим образом:

class Product < ApplicationRecord
  has_one_attached :image

  def set_average_color
    image = MiniMagick::Image.open(Rails.application.routes.url_helpers.rails_blob_url(self.image, only_path: true))
    image.resize("1x1")
    red, blue, green = image.get_pixels[0][0]
    update(average_color: hex_value(red, blue, green))
  end

Итак, в основном я хочу сохранить атрибут average_color с шестнадцатеричным значением среднего цвета изображения.

Моя проблема заключается в попытке открыть изображение из активного хранилища с помощью MiniMagick с помощью rails_blob_url, я получаю следующую ошибку:

Errno::ENOENT: No such file or directory @ rb_sysopen

Я пытался использовать rails_blob_path также безрезультатно. (Кстати, ко всем моим объектам Product прикреплено изображение).

Каким будет правильный способ получить доступ к изображению, прикрепленному с модели, и передать его в miniMagick ??

Бонусный вопрос: есть ли способ звонить set_average_color каждый раз, когда мое изображение меняется ??

Большое спасибо !!!

...