使用escape_javascript的问题:默认javascript

时间:2011-07-23 00:45:11

标签: javascript ajax ruby-on-rails-3

当我在创建操作上遇到此问题时,我正在做一些ajax功能。

在我的create.js.erb中:

$("follow_form").update('<%= escape_javascript(render("users/unfollow")) %>') 
$("followers").update('<%= "#{@user.followers.count} followers" %> ')

我的部分用户/ _unfollow.html.erb:

<%= form_for(current_user.relationships.find_by_followed_id(@user),
            :html => { :method => :delete },
            :remote => true) do |f| %>
<div class='actions'>
    <%= f.submit 'Unfollow' %>
</div>
<% end %>

点击时,“跟随”按钮基本上会变为“取消关注”。但是,单击该按钮时,这就是escape_javascript返回的内容:

<form accept-charset=UTF-8 action=/relationships class=new_relationship data-remote=true id=new_relationship method=post>
  <div style=margin:0;padding:0;display:inline>
    <input name=utf8 type=hidden value=&#x2713; />
    <input name=authenticity_token type=hidden value=YwOC5/xVq5FQFJxOiKXR8nGV7/jGMsVEX4OLuWJB56I= />
  div>  
  <div>
    <input id=relationship_followed_id name=relationship[followed_id] type=hidden value=7 />
  div>  
  <div class=actions>    
     <input id=relationship_submit name=commit type=submit value=Follow />  
  div>
form>

你可以看到几乎每个结束标签都缺失'&lt; /”。因此按钮不起作用。

然后我开始玩javascript include。当我改变

时,这个ajax功能将起作用
<%= javascript_include_tag :defaults %>

<%= javascript_include_tag 'prototype' %>

为什么这样做?

0 个答案:

没有答案