2016-04-22 43 views
0

创建新记录时(rails default new action),对象ID为零b/c,它在数据库中未被执行。Rails上传新对象

上传对象时,通常会绑定到一个ID(使用回形针)。

当我的用户点击new,并且我想为ajax上传提供dropzone.js区域时,如何将该图像/文件绑定到发布对象时没有ID?

如果他们放弃或退出浏览器,我会成为孤儿的临时图像/文件...

我在连接对象上传的点了一个新的记录的麻烦。

有人可以帮我找出控制器的逻辑吗?在创建对象之后,我可以很容易地在单独的操作中完成此操作,但不能在此之前完成。

回答

2

我做了一个Gem来解决这类问题。 它适用于回形针和是不侵入。要启用该功能,您需要用has_attached_upload替换回形针的has_attached_file

使用Rails Pallet宝石... 首先,您需要上传文件到您的服务器执行POST /uploadsfile属性。该响应会为您提供与该文件相关的标识符。 然后,发送标识符,您可以更新您自己的记录。之后,宝石会将文件复制到您的记录中。

这样,您可以上传文件,然后再坚持您的记录。

你可以看到宝石的README

+0

真棒一个完整的例子。我会研究它。你可以说话作为回形针更换重造吗? –

+0

也是这款导轨5兼容? –

+0

这是一个回形针的补充,而不是替代品。您只需在需要的模型中用'has_attached_upload'替换'has_attached_file'。我没有在Rails 5,Rails 4.2中进行测试。 – Leantraxxx