Rails 3, Haml, Javascript - как поместить переменную javascript в частичное - PullRequest
1 голос
/ 02 марта 2012

У меня есть загрузка изображения, где я проверяю, какая большая часть изображения уже загружена - я делаю это так:

jQuery - displaying progress bar
---
   uploader.bind('FilesAdded', function(up, files) {    
      $.each(files, function(i, file) {
        $('#filelist').append('#{escape_javascript(render(:partial => "form", :locals => {:file_id => file.id}))}');
      });

      up.refresh();
      uploader.start();
    });

    uploader.bind('UploadProgress', function(up, file) {  
      $('#'+file.id).find('strong').html('<span>' + file.percent + "%</span>");
      $('#'+file.id).find('.bar').css('width',file.percent+"%");
    });


form.html.haml
---
#form_data
  %div{:id => file_id, :style => "width:330px;"}
  ...

И я получаю ошибку

undefined local variable or method `file' for #<#<Class:0x0000010161c0b8>:0x0000012a3b1f20>

Изначально у меня был проект в ERB и на том месте, где сейчас рендеринг частичного файла был содержимым этого файла - но теперь я преобразовал проект в HAML и код для отображения «индикатора выполнения» переместил кодв неполный файл, но теперь я получаю эту ошибку ...

Может кто-нибудь помочь мне, пожалуйста, как решить эту проблему?Спасибо

1 Ответ

3 голосов
/ 20 марта 2012

Похоже, вы пытаетесь включить JavaScript в свой файл HAML.Если это так, вы должны использовать :javascript HAML-фильтр http://haml -lang.com / docs / yardoc / file.HAML_REFERENCE.html # javascript-filter в вашем частичном.

...