在上传.zip文件时,Rails的Paperclip gem而不是PUTting

时间:2012-08-22 19:59:34

标签: ruby-on-rails zip paperclip

我有一个表单(Rails 3.2.8,Paperclip 3.1.4),带有两个Paperclip附件,用于带有两个has_attached_files的模型。一个是图像,另一个是通用文件,通常是.zip文件。

只要我不尝试上传.zip文件,一切正常。上传任何大小的.zip文件(原始版本为80 MB但尝试3 MB以查看是否出现大小问题)会导致表单POST而不是PUT,并且Rails会引发路由错误。

表单方法是POST但是将Rails的隐藏_method值设置为'put',这样可以正常工作,并且在我不尝试上传.zip文件时会导致PUT。

表单确实正确设置了'multipart'位。

知道可能导致这种情况的原因吗?

1 个答案:

答案 0 :(得分:1)

文件听起来很大。仔细检查实际的参数是否正在进入请求中。根据文件的大小,我也可以在本地获取。

我看到的效果是rails基本上没有参数。由于PUT实际上是一个带有隐藏元素的帖子,因为params被删除,所以rails只会看到POST。

我实际上不确定是什么原因造成的。我认为它可能是本地Web服务器,因此您可能需要配置nginx或其他东西。这在heroku或任何事情上从未发生过,但如果文件足够大,则总是在本地。

另请注意,webrick的请求有效负载限制非常小。所以不要使用它。使用“瘦”,因为它是一个非常容易的替代品。