Эй, ребята, я пытаюсь связать недавно популярный jQuery File Uploader с Rails 3 (с бэкэндом Paperclip, хотя это еще не относится к этому вопросу).
Этот плагин jQuery в основном позволяет загружать несколько файлов. Я читал эту страницу для получения информации о том, как передавать дополнительные данные 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
});
Проблема в том, что согласно документации плагина , buildUploadRow
должен возвращать html, поэтому мне придется получить возвращенные данные и объединить их с возвращаемым результатом, или что-то в этом роде.
Одна возможность состоит в том, чтобы один раз записать это в статическом представлении, а затем всякий раз, когда мне нужно добавить его динамически, когда загрузка отмечена, clone()
это, при этом запоминая избавьтесь от оригинала, чтобы он не мешал отправленным данным.
Любая помощь приветствуется!