jquery - 创建帖子时如何使用 JQuery-File-Upload 在一页上上传多张图片?

标签 jquery ruby-on-rails ruby-on-rails-3 carrierwave

我意识到没有一种解决方案可以使用 jQuery-File-Upload 和 Carrierwave 或 Dragonfly 在创建帖子时在一页上添加多个图像。我有两个模特,一篇文章有​​很多图片。我想在添加后立即上传图像,并可以选择在保存整个新帖子之前取消它。我的代码无法正常工作,所以我没有将其粘贴到这里,也许有人有例子,这个概念对于 jQuery-File-Upload 是否完全可行?如果没有,也许还有其他方法来保存多张照片并保持引导 View ?我发现了很好的例子,它们代表了与预期功能类似的功能,但使用了 Upladify:FormFly或仅使用 Carrierwave 和nested_form:carrierwave-nested_form 。关于 jQuery-文件上传 git wiki这是如何在 Rails 中仅将其与一个模型一起使用的教程。

我想要得到这样的东西: enter image description here

最佳答案

所有这一切的主要问题是“如何与一个不存在的对象创建关联?”。好吧,你不能。你能做的就是下一个最好的事情,智取它。我将通过 3 个简单步骤向您展示如何做到这一点。我故意不发布任何代码,因为该过程本身应该相当清晰,并且适用于各种方法(不仅限于 jQuery-File-Upload 和 Carrierwave 或 Dragonfly)。

第 1 步

正常、独立地设置关系的每个部分。使用脚手架(或其他任何东西)生成新帖子。在帖子表单的正下方,照常实现您的照片上传解决方案。我会像平常一样使用每个对象自己的 Controller 和部分,以防止这些东西不可磨灭地混合在一起。现在先不用担心关系关联代码。

第 2 步

将您的关系代码添加到您的模型中。不用担心界面没有正确关联它们。

第 3 步(有趣的部分)

现在,将它们联系在一起。我们正在创建图像,但它们不属于任何帖子。我们还创建了没有任何图像的帖子。我们需要某种方式来完成这种关联。解决方案相当简单。您需要在帖子表单中创建一个隐藏文本字段,以包含要与帖子关联的图像的 ID。然后,您的图像创建响应将新图像的 ID 添加到文本字段,同时将新图像添加到页面。同样,在后 Controller 中,只需循环隐藏字段中的 ID 并在保存之前关联目标对象即可。您可能希望向取消按钮添加类似的逻辑,例如从页面中删除图像时从数组中删除 ID。您可能还想添加一个计划任务来清理超过一定年龄且与帖子无关的图像,以消除废弃表单中的任何困惑。

关于jquery - 创建帖子时如何使用 JQuery-File-Upload 在一页上上传多张图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12350019/

相关文章:

mysql - Ruby on rails mysql问题

mysql - 使用 Perl 更新 Ruby on Rails "created_at"日期

ruby-on-rails - 异常通知 gem "ERROR: Failed to generate exception summary"

php - 为客户端显示网站的 MySQL 表的名称是否安全?

javascript - jQuery 动画,缺少 : after property id

javascript - 无法读取 jquery 中未定义的属性 '0'

ruby-on-rails - 无法在 Ubuntu 11.04 上使用 ctrl-c 停止 WEBrick 1.3.1

javascript - 如果是字母字符串,则将 int 解析为 0 文本

ruby-on-rails - Rails 遍历深度哈希数组

ruby-on-rails - 有没有办法可以使用 button_to 控制按钮的类?