2011-02-06 41 views
1

嗨,大家好,我正在尝试将最近流行的jQuery File Uploader与Rails 3捆绑在一起(虽然这与这个问题还没有相关)。rails和动态javascript?

这个jQuery插件基本上允许多个文件上传。我正在阅读this page以了解如何在每次上传时传递额外的POST数据。这是我遇到麻烦的地方。下面是该页面提供作为一个例子代码:

$('.upload').fileUploadUI({ 
     uploadTable: $('.upload_files'), 
     downloadTable: $('.download_files'), 
     buildUploadRow: function (files, index) { 
      var file = files[index]; 
      return $(
       '<tr>' + 
       '<td class="file_upload_start">' + 
       '<div class="ui-state-default ui-corner-all ui-state-hover" title="Start Upload">' + 
       '<span class="ui-icon ui-icon-circle-arrow-n">Start Upload<\/span>' + 
       '<\/div>' + 
       '<\/td>' + 
       '<td>' + file.name + '<\/td>' + 
       '<td class="file_upload_desc"><input type="text" title="File description"><\/td>' + 
       '<td class="file_upload_progress"><div><\/div><\/td>' + 
       '<td class="file_upload_cancel">' + 
       '<div class="ui-state-default ui-corner-all ui-state-hover" title="Cancel">' + 
       '<span class="ui-icon ui-icon-cancel">Cancel<\/span>' + 
       '<\/div>' + 
       '<\/td>' + 
       '<\/tr>' 
     ); 
     }, 
     // ... 

我需要更换的部分是在file_upload_desc输入文本框。取而代之的是,我需要包括与构建的下拉控制:

f.collection_select :category_id, Category.all, :id, :name 

这工作在静态视图,但我需要这个文件选择上传每次加。

我的困惑在于何处以及如何管理静态视图的动态下拉(动态,因为它取决于了解哪些类别存在)的传递。

难道有事情做与创建一些视图部分,然后做一些事情,如:

$.get("/partial", function(data) { 
    // blah blah 
}); 

的问题是,每个插件的documentation,该buildUploadRow必须返回HTML,所以我就一定得返回的数据并将其连接到返回结果,或其他。

一种可能性是静态视图,每当我需要动态地添加它当上载标记,clone()它,一边回忆摆脱了原来以避免干扰它的写了这一点,一次,然后与张贴的数据。

任何帮助表示赞赏!

回答

2

我认为有几个方面去了解这一点:

  1. 的collection_select添加到您的网页的另一部分,这是不是你的上传表单中,并从用户隐藏它(显示:没有)。保留这一个collection_select作为参考,只需要添加一个新的文件上传行就可以克隆它。请确保将collection_select作为隐藏元素添加到页面的其他区域,以便它也不会被提交。
  2. 使用Rails创建一个collection_select作为您的第一个文件上传器行,然后在需要另一个时简单地克隆第一个文件上传器行。
  3. 使用Rails将collection_select直接插入页面上的javascript函数(以字符串形式)。确保将字符串escape_javascript改为有效的Javascript。使用这种方法,你的collection_select已经被嵌入到buildUploadRow函数中。
+0

谢谢潘我真的很感谢回应。我真的想用3号选项来做,但这是我感到困惑的地方。我会打电话给什么档案?谢谢! – 2011-02-07 02:37:07