Rails/Dragonfly: 如何更新像 image_width 这样的魔法柱
Rails/Dragonfly: how to update magic colums like image_width
我使用蜻蜓来处理我的 rails 应用程序中的图像附件。
我在模型中使用魔法列 image_width 和 image_height。
这很好用。现在我在模型中得到了一些带有 image_uid
的图像,可以访问图像,但未设置 image_width
和 image_height
。 (它发生在 simple_dragonfly_preview 插件中)
现在我怎样才能强制重新计算这些值?所以在模型中是这样的:
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 分析器计算图像的尺寸http://markevans.github.io/dragonfly/imagemagick/#analysers。
鉴于您已经配置了 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
我使用蜻蜓来处理我的 rails 应用程序中的图像附件。
我在模型中使用魔法列 image_width 和 image_height。
这很好用。现在我在模型中得到了一些带有 image_uid
的图像,可以访问图像,但未设置 image_width
和 image_height
。 (它发生在 simple_dragonfly_preview 插件中)
现在我怎样才能强制重新计算这些值?所以在模型中是这样的:
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 分析器计算图像的尺寸http://markevans.github.io/dragonfly/imagemagick/#analysers。
鉴于您已经配置了 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