rails4 carrierwave + S3添加新的图像版本

时间:2016-03-15 17:25:17

标签: ruby-on-rails amazon-web-services amazon-s3 carrierwave

我有一个rails4应用程序,配置文件图像上传了carrierwave并由S3提供服务​​。

我曾经有一个图片版本(base_thumb)用于调整大小。现在我正在尝试添加user_thumb,但是如果我将代码从profile.avatar.url(:base_thumb)更改为profile.avatar.url(:user_thumb),那么该图像不会显示给之前创建配置文件的用户,因为该图像版本未启用S3。

我该如何解决这个问题?

version :base_thumb do
  process :resize_to_fit => [85, 85]
end

version :user_thumb do
  process :resize_to_fit => [40, 40]
end

1 个答案:

答案 0 :(得分:1)

您需要创建每种不同尺寸的新版本。 Carrierwave有一个方法。

您可以在此处阅读文档:https://github.com/carrierwaveuploader/carrierwave#recreating-versions

但基本上你会运行像

这样的东西
Profile.find_each do |profile|
  profile.avatar.recreate_versions! if profile.avatar?
end