Я искал везде безрезультатно.
Поэтому я использую 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
каждый раз, когда мое изображение меняется ??
Большое спасибо !!!