我意识到,在创建帖子以添加多个图像时,没有使用jQuery-File-Upload和Carrierwave或Dragonfly在一个页面上创建能力的解决方案.我有两个模型一个帖子与许多图像.我想在添加后立即上传图片,并有保存全新帖子之前取消的选项.我的代码不工作,所以我没有粘贴到这里,也许有人有例子,这个概念是否可以使用jQuery文件上传?如果没有可能是其他方式来保存多张照片并保持自举视图?我发现很好的例子,这将代表一个类似于预期的功能,但Upladify:
FormFly或只有与Carrierwave和nested_form:
carrierwave-nested_form.在jQuery文件上传git
wiki是教程如何使用它只有一个模型在Rails.
我想得到这样的东西:
解决方法
所有这些的主要问题是“如何创建与不存在的对象的关联”?嗯,你不行.你可以做的是下一件最好的事情,超越它.我会告诉你如何做到这一点,在3个简单的步骤.我有意不发布任何代码,因为进程本身应该是相当清楚的,适用于各种方法(不仅限于jQuery文件上传和载波或蜻蜓).
步骤1
独立地将关系的每个部分正常设置.使用支架(或任何)来生成新的帖子.在正文下方的表单下方,正常执行您的照片上传解决方案.我将使用每个对象自己的控制器和部分,正常情况下,防止这些东西不可磨灭地混合在一起.不用担心关系关联代码了.
第2步
将您的关系代码添加到您的模型.不要担心接口没有正确关联它们.
步骤3(有趣的部分)
现在,把它们捆绑在一起.我们有创建的图像,但它们不属于任何帖子.我们还创建了没有任何图像的帖子.我们需要一些方法来完成这个关联.解决方案相当简单.您需要在帖子表单中创建一个隐藏的文本字段,以包含与该帖子相关联的图像的ID.然后,您的图像创建响应,将新图像的ID添加到文本字段,同时将新图像添加到页面.类似地,在后置控制器中,简单地循环来自隐藏域的ID,并在保存之前关联目标对象.您可能希望为取消按钮添加类似的逻辑,例如从页面中删除图像时从数组中删除ID.您可能还需要添加一个计划的任务来清除与某个职位相关联的某个年龄的图像,以消除废弃表单中的任何杂乱.