我一直到处搜索都没有结果。
所以我正在使用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
,其属性为图像平均颜色的十六进制值。
我的问题是,当尝试使用rails_blob_url
和MiniMagick从活动存储中打开图像时,出现以下错误:
Errno::ENOENT: No such file or directory @ rb_sysopen
我一直在尝试使用rails_blob_path
而没有结果。 (顺便说一下,我所有的Product对象都附有图片)。
哪种方法是访问模型附加图像并将其传递给miniMagick的正确方法?
奖金问题:每次我的形象发生变化时,有没有办法打电话给set_average_color
?
非常感谢!
答案 0 :(得分:0)
MiniMagick::Image.read(image.download)