Как прикрепить загрузку асинхронного файла к моделям с Carrierwave, Backbone, Plupload? - PullRequest
3 голосов
/ 02 декабря 2011

Я пытаюсь достичь того, о чем говорилось в первые 5 минут разговора Thoughtbot Q / A;Загрузите файл в асинхронном режиме, а затем сохраните модель с прикрепленным к ней файлом.

http://ui.thoughtbot.com/assets/backbone_js_rails_chat_episode_1_part_1.m4a

Я настроил в качестве носителя на сервере и Plupload на клиенте и могу сделатьзапрос и загрузить файл.Однако я не уверен, как отправлю токен, о котором идет речь, в ответ, а затем сохраню модель.

Итак, у меня есть форма с вводом заголовка и кнопкой загрузки, которая добавляет изображение, язатем нажмите кнопку «Сохранить», которая должна выполнить загрузку, затем сохраните модель (Фото, со смонтированным загрузчиком Carrierwave и атрибутом заголовка)

Как бы объединить два запроса в одну кнопку?Как все это будет реализовано?

1 Ответ

0 голосов
/ 04 апреля 2012

Если цель iframe (загрузка) находится на том же сервере, вы можете вернуть что-то аналогичное JSONP. что-то вроде

var functionUpload(model, $inputform) {
   var cbName = 'cb' + Math.floor((Math.random()*100000)+1));
   document[cbName] = function (id) {
     model.set({binID: id}); // or just refetch
   } 
   $inputform.attr('action', uploadURL+'callback='cbName);
   $inputform.trigger('submit');
}

Затем скрипт загрузки вернет

<script>
  document.parent.cb12354(123);
</script>
...