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

12

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

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


我认为你应该把那段代码放在上传器中,而不是帖子模型中。 - noob
你能添加一个回溯吗? - hayesgm
它在只读服务器上吗? - ErvalhouS
1个回答

0
我在使用异步处理时遇到了类似的问题,因为服务器是只读的(Heroku)。在我的情况下,在定义文件大小时出现了问题,我通过Monkey Patching def size从fog文件类中解决了这个问题。
module CarrierWave
  module Storage
    class Fog < Abstract
      class File
        def size
          file.nil? ? 0 : file.content_length
        end
      end
    end
  end
end

如果问题仍然存在,并且您可以提供更多的回溯和宝石配置细节,我可以为您提供更多帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接