创建新记录(rails默认新操作)时,对象ID为nil b / c,它在数据库中不存在。
上传对象时,它们通常与ID绑定(使用回形针)。
当我的用户点击new
,并且我想为ajax上传提供dropzone.js区域时,如果没有id,该如何将该图像/文件绑定到post对象?
如果他们丢弃或退出浏览器,我会有孤立的临时图像/文件...
我无法在新记录的对象上传之间连接点。
有人可以帮我解决控制器逻辑问题吗?在创建对象后,我可以在单独的操作中轻松完成,但不是之前。
答案 0 :(得分:2)
我制作了一个宝石来解决这类问题。
它在回形针之上工作,而不是侵入式。要启用此功能,您需要将回形针的has_attached_file
替换为has_attached_upload
。
使用Rails Pallet gem ...
首先,您需要将文件上传到服务器,并使用POST /uploads
属性执行file
。响应将为您提供与该文件相关的标识符。
然后,发送标识符,您可以更新自己的记录。宝石会在此之后将文件复制到您的记录中。
这样,您可以在保留记录之前上传文件。
您可以在宝石README
上看到完整的示例