重新创建版本 -carrierwave-fog-aws

Posted

技术标签:

【中文标题】重新创建版本 -carrierwave-fog-aws【英文标题】:recreate versions - carrierwave-fog-aws 【发布时间】:2013-04-08 05:26:33 【问题描述】:

我正在尝试在我的模型中使用以下内容重新创建我上传的图像...

  Post.all.each do |ym| 
      ym.avatar.cache_stored_file! 
      ym.avatar.retrieve_from_cache!(ym.avatar.cache_name) 
      ym.avatar.recreate_versions! 
      ym.save! 
  end

不幸的是,我收到以下错误....

(undefined method `body' for nil:NilClass):

我的上传器名为 AvatarUploader,用于我的 Post 模型。有关如何解决此问题的任何建议?

【问题讨论】:

我认为您应该将该代码放在上传器中,而不是 Post 模型中。 可以添加回溯吗? 是否在只读服务器上? 【参考方案1】:

在只读服务器 (Heroku) 上使用异步处理时,我遇到了类似的问题。就我而言,定义文件大小时出现问题,我从雾文件类解决了猴子补丁def size

module CarrierWave
  module Storage
    class Fog < Abstract
      class File
        def size
          file.nil? ? 0 : file.content_length
        end
      end
    end
  end
end

如果问题仍然存在并且当您从回溯和 gems 配置中发布更多详细信息时,我可以为您提供更多帮助。

【讨论】:

以上是关于重新创建版本 -carrierwave-fog-aws的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android M 或更高版本中在运行时更改权限时防止重新创建 Activity

Xcode 8 Pod 更新问题-由于主要版本更新而重新创建 CocoaPods [重复]

ArcGIS 重新创建几何服务(GeometryService)

尝试重新创建像 Stripe 这样的抖动动画

在 Carrierwave 中重新处理不同版本的图像

您如何在 Carrierwave 中重新处理不同版本的图像?