使用carrierwave上传多文件

时间:2012-10-19 00:24:47

标签: ruby-on-rails nested-forms carrierwave

我最近观看了Ryan关于Jquery文件上传的第381集,现在我想知道如何添加对嵌套表单的支持。说我有产品和产品有很多图像。如果没有多态关联,我应该怎么做呢?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚你究竟在问什么,或者多态关联与此有什么联系,但我想我可能遇到了同样的问题(尽管我使用的是plupload)

我的解决方案是生成一个简短的随机字符串(我使用SecureRandom.hex(6),但我确定还有其他方法可以做到)并将其包含在我的产品表单视图中。我将它作为隐藏字段包含在表单中,也作为javascript变量。

<%= javascript_tag do %>
  window.tmp_id = "<%= tmp_id %>"
<% end %>

在我的plupload配置中,我将此变量添加到上传图像的POST请求中。对于jQuery文件上传,我想你想要这样的东西:

$('#fileupload').fileupload({
  url: '/path/to/upload/handler',
  formData: { tmp_id: tmp_id }
});

因此,在处理文件上传的控制器中,我只需将文件放在一个临时目录中,该目录使用通过params传入的tmp_id命名。

当控制器收到表单提交时,它使用模型检查临时目录的存在并处理在那里找到的图像,为每个与新创建的产品绑定的图像创建新记录。

可能不是你正在寻找的,但认为它可能会给你一些想法。

相关问题