嘿伙计们,我试图将最近流行的jQuery File Uploader与Rails 3绑在一起(使用Paperclip后端,虽然这与此问题尚不相关)。
这个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()
它,同时记得摆脱原文以避免干扰POSTed数据。
感谢任何帮助!
答案 0 :(得分:2)
我认为有几种方法可以解决这个问题: