【问题标题】:Carrier Wave hangs on update when no upload is provided未提供上传时,Carrier Wave 挂起更新
【发布时间】:2013-03-07 05:32:49
【问题描述】:

我以相当标准的方式使用 Carrierwave 来管理图像文件的上传,例如徽标、海报和用户图像。

我发现我可以上传新图片或编辑图片没有问题。我正在使用 Heroku,因此需要在生产和登台上使用 ASW S3。我的上传文件中有一个开关来处理这个问题。

if ['development', 'test'].include?(Rails.env)
  storage :file
else
  storage :fog
end

这在开发中非常有效,但是当我切换到生产时,如果用户在没有附加文件的情​​况下从模型中编辑记录,整个事情就会停止并超时。

我还可以通过将存储更改为 :fog 在开发中复制它。

我已经搜索过,只是真正遇到了这个与我所看到的内容非常接近的:6841798

希望有人以前见过这个并且可以提供一些启示。

【问题讨论】:

  • 请提供您的控制器并查看代码。

标签: ruby-on-rails ruby carrierwave


【解决方案1】:

@本杰明

感谢您的跟进。

这是所有代码的gist

据我所知,只有当我在没有海报的情况下更新项目时才会真正出现问题。

如果我将开发存储(image_uploader.rb 第 16 行)更改为 :file,那么它在本地可以正常工作。

另外,如果我注释掉表单(edit.html.haml 第 12-23 行),那么它也可以正常工作。

这似乎与from this post 的情绪一致,但是我无法弄清楚交易是什么。我的猜测是,当您尝试上传到 Fog 时,Carrier Wave 正在执行一些回调,如果没有安装文件,它会在某处进入无限循环。

希望你能给我一些启示。

干杯,

卢克

【讨论】:

    【解决方案2】:

    我已设法通过删除 attr_accessible remote_poster_url 来自模型并且还注释掉了

    = f.input :remote_poster_url, label: 'Add a poster from a URL'
    

    现在,我可以处理添加没有海报的项目、再次编辑该海报信息、添加海报然后更新更多信息而不挂起的所有情况。

    希望这可以帮助可能遇到此问题的其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-11
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 1970-01-01
      • 2019-08-09
      相关资源
      最近更新 更多