我有一个项目,我有几种内容类型(文章,面试等)与嵌套图像。为了处理图像,我所做的是实现弹出“图像上传”框(使用Paperclip和Uploadify的组合),以便用户可以立即将图像上传到文章。
此过程的工作方式如下:用户点击“上传图片”图标,然后弹出一个框,可以添加回形针文件上传字段,以便根据需要上传尽可能多的图片。 Uploadify会立即上传照片并为其分配附加的文章ID号。然后将照片的HTML发送到WYSIWYG编辑器。如果他们也想删除照片,他们可以。如果它听起来像WordPress,那就是它的基础。
无论如何,我的工作很棒。照片保持关联并与各自的文章相关联,而不是将所有内容放在一个巨大的文件夹中(像许多WYSIWYG图像上传者那样),任何人都可以添加/删除任何内容。
但是这有一个小缺陷...正如我所说,在执行上传时,图像被分配了内容的ID号。好吧,您可以在创建全新文章时看到这是一个问题,因为新文章在保存之前没有 ID号。因此图像上传失败。因此,整个过程仅适用于“编辑/更新”操作。
在此期间,我告诉团队确保首先保存文章,然后当他们返回编辑时,他们可以将他们的图像上传到正文。但很自然,他们忘记了,因为这是一件容易的事,因为这对用户不友好,我必须解决这个问题。
我认为有两种方法可以解决这个问题。
为“新”表单上的文章指定ID(隐藏字段或其他)。这将安抚上传器,因为它填充了它出错的'nil'值,然后当文章第一次被保存时,它将为它分配相同的数字。但是我发现了一个潜在的问题......如果另一个用户同时创建了一篇文章并且数据库为它分配了一个相同的ID号呢?
我注意到,当你创建一个新的WordPress文档时,新文档会立即“自动保存”作为草稿。所以我的想法就是这样......当用户去创建一个新文档时,'new'动作实际上会触发'save'操作,绕过任何验证错误(因为这些字段是空白的),然后立即重定向到'编辑'动作。这样,ID就会被保存,一切都会正常工作,整个过程可能看起来与用户无缝。
你会如何处理这种情况?就像我上面提到的那样,还是有更好的方法?
答案 0 :(得分:0)
我决定进入第二条路线并对新动作执行保存并绕过验证,然后重定向到编辑表单,将“自动保存”的闪存消息投入到测量中。它运作良好。