如果没有提供上传,Carrier Wave会在更新时挂起

时间:2013-03-05 04:01:21

标签: ruby-on-rails ruby carrierwave

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

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

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

这在开发时效果很好,但是当我切换到生产时,如果用户从模型中编辑记录而没有附加文件,整个过程就会停止并超时。

我还可以通过将存储更改为:fog来复制此问题。

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

希望有人之前已经看过这个并且可以解释一下。

2 个答案:

答案 0 :(得分:0)

@benjamin

感谢您的跟进。

以下是所有代码的gist

正如我所知,当我在没有海报的情况下更新项目时,这确实存在问题。

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

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

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

希望你能够解释一下。

干杯,

答案 1 :(得分:0)

我已成功解决了这个问题 <{1}}来自模型,并评论

attr_accessible remote_poster_url

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

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