无法使用Minimagick Rails打开活动存储映像附件

时间:2019-11-01 16:43:55

标签: ruby-on-rails ruby-on-rails-5 rails-activestorage minimagick

我一直到处搜索都没有结果。

所以我正在使用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

非常感谢!

1 个答案:

答案 0 :(得分:0)

MiniMagick::Image.read(image.download)