0

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

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

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

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

我还可以通过将存储更改为:fog.

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

希望有人以前见过这个并且可以阐明。

4

2 回答 2

0

@本杰明

感谢您的跟进。

这是所有代码的要点

正如我所知,只有当我在没有海报的情况下更新项目时,这才是真正的问题。

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

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

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

希望你能给我一些启示。

干杯,

卢克

于 2013-03-06T00:09:40.673 回答
0

我已经设法通过 attr_accessible remote_poster_url从模型中删除并注释掉

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

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

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

于 2013-03-06T21:32:49.417 回答