【问题标题】:How to add thumb versions of images I have already uploaded with carrierwave如何添加我已经使用carrierwave上传的图像的拇指版本
【发布时间】:2016-09-12 02:26:32
【问题描述】:

我正在创建正在上传的新图像的缩略图版本并保留原始文件。但我只是刚刚将它添加到我的应用程序中,并且随着时间的推移已经上传了大约 600 张没有拇指版本的图像。我希望已经上传的图片也有拇指。

我可以通过阅读carrierwave 文档that you can run a script to re upload images in the DB to be a different size 看到。但这会用新大小的图像替换原始图像。

有没有办法让我做类似于他们在文档中所做的事情,但将其保存到 image_thumb 列而不替换 original_image 列中的图像?基本上遍历original_image 列,调整它们的大小并将其保存到image_thumb 列。

【问题讨论】:

  • 通常,carrierwave 会保留您的全尺寸版本。因此,通过运行recreate_versions,您最终应该得到原始大小 + 调整大小的图像。

标签: ruby-on-rails ruby ruby-on-rails-4 carrierwave minimagick


【解决方案1】:

Carrierwaves recreate_versions! 只影响上传文件的处理版本,原始文件保持原样。这意味着您拨打recreate_versions! 应该是安全的。您可以在 pull request 中看到这种行为的证据。

【讨论】:

  • 好的,谢谢。因此,为了澄清它确实保留了原始文件和original_file 列,并制作拇指并将拇指的位置保存在image_thumb 列中。抱歉,我只是想在运行它之前仔细检查一下,并将所有 original_file db 记录重命名为拇指文件名。
  • 它对您的数据库没有任何作用。在您的数据库中,只有原始文件名,例如myimage.jpg。如果您重新创建版本,则数据库保持不变,但您会获得额外的 getter,将 url 返回给 thumb。然后,您将使用my_model_instance.original_file.url 获取原始文件,使用my_model_instance.original_file.image_thumb.url 获取调整大小的版本(假设您的上传器安装在original_file 字段上并且您的拇指版本称为image_thumb;请参阅@987654322 中的第二个代码示例@
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2019-03-27
相关资源
最近更新 更多