我在我的rails应用程序中使用蜻蜓来处理图像附件。
我在模型中使用了magic columns image_width和image_height。
这很有效。现在我在模型中得到了一些带有image_uid的图像,图像是可访问的,但是image_widthimage_height没有设置(这发生在简单的蜻蜓预览插件上)
现在如何强制重新计算这些值在模型中类似这样:

before_save :update_image_fields

def update_image_fields
  logger.info "Image size update"
  if image_uid.present?
    self.image_width = image.width # what to call here?
    self.image_height = image.height
   end
 end

最佳答案

您可以使用ImageMagic分析仪计算图像的尺寸。
鉴于您已经配置了ImageMagick插件,重新计算图像高度和宽度的代码如下所示:

Photo.where(image_width:nil).each do |photo|
  photo.image_width = photo.image.analyse(:width)
  photo.image_height = photo.image.analyse(:height)
  photo.save
end

关于ruby-on-rails - Rails/Dragonfly:如何更新像image_width这样的魔术柱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32720393/

10-13 01:42