Rails 3. Невозможно передать локальные переменные в файле Partial js с локальными переменными

У меня есть много файлов js, таких как new.js, index.js, create.js и т. д., которые обрабатывают мои вызовы Ajax и другой код jquery. Поскольку у меня много общих фрагментов кода, я пытался использовать частичные файлы js. Например, у меня есть новый .js, который вызывает частичный _new.js

новый.js

    <%= render :partial=>'new',  :formats=>[:js],:handlers=>[:erb] %>

_new.js

    <% if params[:group_id]%>
      $("#group_participants_content").html("<%= escape_javascript(render(:partial=>'form'))%>");
      $(".remote_selected").removeClass("selected remote_selected simple-navigation-active-leaf");
      $("#group_mail").addClass(" remote_selected simple-navigation-active-leaf");
   <%else%>
     $("#users_content").html("<%= escape_javascript(render(:partial=>'form'))%>");
     $(".remote_selected").removeClass("selected remote_selected simple-navigation-active-leaf")
     $("#mail").addClass("remote_selected simple-navigation-active-leaf");
  <%end%>
  // Change our States
History.replaceState({action:'<%= "#{controller.action_name}/#{controller_name}" %>'}, '<%=       "#{controller.action_name.titleize} #{controller_name}" %>', '?action=<%=  "#{controller.action_name}/#{controller_name}" %>');
var url=History.getState().url;   
$("#help").attr('href',"/helps/0?url="+url)

Это работает, но чтобы быть полезным, я хотел бы добавить местных жителей как

    <%= render :partial=>'new',  :formats=>[:js],:handlers=>[:erb], :locals=>  {:id=>"#group_participants_content"}%>

и измените _new.js на

  $('"'+id+'"').html("<%= escape_javascript(render(:partial=>'form'))%>");

Однако это не работает. Похоже, что файл js вообще не загружается.

У кого-нибудь есть предположения, что не так?

Цените любую помощь?


person Hans    schedule 28.07.2013    source источник


Ответы (2)


Приходящий идентификатор уже находится в кавычках, ваш код снова заключит его в кавычки, передайте его напрямую. Надеюсь, я должен работать:

$(id).html("<%= escape_javascript(render(:partial=>'form'))%>");
person Rails Guy    schedule 28.07.2013

person    schedule
comment
Не беспокойся. Рад быть полезным. Кстати, вы можете принять это как ответ, если это так. - person Henry; 28.07.2013