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

时间:2013-04-15 23:32:55

标签: ruby-on-rails amazon-s3 carrierwave fog recreate

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

  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模型。关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:0)

在只读服务器(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

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