0

与我的上一个问题类似:Issue with escaped html in .js.erb file

我正在尝试在 rails 教程中呈现以下表单,但我再次转义了 html。有没有类似的套路?

$("#<%= "follow_form#{@tag.id}" %>").html("<%=escape_javascript(render('tags/follow', :tag => @tag)) %>") ;

我明白了

<form accept-charset=UTF-8 action=/tag_user_relationships/76 class=edit_tag_user_relationship data-remote=true id=edit_tag_user_relationship_76 method=post><div style=margin:0;padding:0;display:inline><input name=utf8 type=hidden value=&#x2713; /><input name=_method type=hidden value=delete /><input name=authenticity_token type=hidden value=goedvibRxKtDRiAufp1ThWJP0rRBU2cMH2xp7qodKws= />div> <div class=actions><input id=tag_user_relationship_submit name=commit type=submit value=Unfollow />div>form>

当我只想获得不同的提交按钮时。

视图代码:

<%= form_for current_user.tagUserRelationships.build(:tag_id => tag.id),
             :remote => true do |f| %>
  <div><%= f.hidden_field :tag_id %></div>
  <div class="actions"><%= f.submit "Follow" %></div>
<% end %>

我继续调查。如果我添加这个:

$("#<%= "follow_form#{@tag.id}" %>").html("<%= escape_javascript(render('tags/follow', :tag => @tag)).html_safe %> ");

我得到了适当的表格来显示,但是:

div>按钮div>表单>

而不仅仅是

按钮

4

1 回答 1

1

尝试以下操作:

$("#<%= "follow_form#{@tag.id}" %>").html("<%= escape_javascript("#{render 'tags/follow'}").html_safe %>");

主要区别在于您的渲染调用位于“#{}”内。没有它,部分将删除所有单引号。

于 2011-06-14T02:51:10.993 回答