Rails 3.无法使用locals传递部分js文件中的本地文件

时间:2013-07-28 10:40:42

标签: ruby-on-rails jquery partial locals

我有很多js文件,比如new.js,index.js,create.js等处理我的Ajax调用和其他jquery代码 由于有许多常见的代码片段,我试图使用部分js文件 例如,我有一个调用部分_new.js

的new.js文件

new.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文件

任何有任何错误建议的人?

感谢任何帮助吗?

2 个答案:

答案 0 :(得分:1)

这是

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

答案 1 :(得分:0)

id即将出现在引用中,你的代码会再次在引号中包装它,直接传递它。希望我能工作:

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