Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
escape\u javascript在Rails中无法正常工作_Javascript_Ruby On Rails - Fatal编程技术网

escape\u javascript在Rails中无法正常工作

escape\u javascript在Rails中无法正常工作,javascript,ruby-on-rails,Javascript,Ruby On Rails,我在使用不引人注目的javascript时遇到了问题。在我的TwitterAccountController中,我有: def unshare @twitter_account = TwitterAccount.find(params[:id]) #@twitter_account.update_attribute(:message_enabled, true) respond_to do |format| format.html { redirect_to @twitter

我在使用不引人注目的javascript时遇到了问题。在我的TwitterAccountController中,我有:

def unshare
  @twitter_account = TwitterAccount.find(params[:id])
  #@twitter_account.update_attribute(:message_enabled, true)
  respond_to do |format|
    format.html { redirect_to @twitter_account.user }
    format.js  # responds to TwitterAccount/share.js.erb
  end
end
这就是在我的视图中单击名为“取消共享”的按钮时发生的情况

响应的unshare.js.erb是:

var div_name = '<%="div#share_form_#{@twitter_account.id}"%>'
$(div_name).html("<%= escape_javascript(render(:partial => 'shared/share', :locals => {:twitter_account    => @twitter_account}))%>");
var div\u name=''
$(div_name).html('shared/share',:locals=>{:twitter_account=>@twitter_account}))%>;
假设将按钮从“取消共享”按钮切换到“共享”按钮。但当单击“取消共享”按钮时,这是从escape_javascript生成的代码:

<form accept-charset=UTF-8 action=/twitter_accounts/1/share data-remote=true method=get>
  <div style=margin:0;padding:0;display:inline><input name=utf8 type=hidden value=&#x2713; />
  div>        
  <input name=commit type=submit value=share />
form>

div>
表格>
你可以看出收尾标签是乱七八糟的,有人知道原因吗

我的javascript_include_标记是:

<%= javascript_include_tag 'jquery.min.js', "rails.js", "d3.js","d3.time.js", "raphael.js", "collapse_menu.js" %>

部分股份:

<%= form_tag(share_twitter_account_path(twitter_account), :method => 'get', :remote => true) do %>
  <%= submit_tag "share"%>
<% end %>
'get',:remote=>true)do%>

我想我也有同样的问题,只是简单地改变了

$(div_name).html("<%= escape_javascript(render(:partial => 'shared/share', :locals => {:twitter_account    => @twitter_account}))%>");
$(div_name).html('shared/share',:locals=>{:twitter_account=>@twitter_account}))%>”;
为了

$(div_name).html('shared/share',:locals=>{:twitter_account=>@twitter_account}))%>';

这只是颠倒了你单/双报价的方式。值得一试:)

正如我在评论中所说,我明白了。我在rails 3.0.8上,escape_javascript有一个bug。更新了rails,运行良好。谢谢你们的帮助

我认为部分本身是好的?部分是好的。它已经在没有javascript的情况下进行了测试。我缺少什么引用?我添加了部分共享。我仍然不清楚引用什么属性值。服务器的真实响应是什么?我的意思是,不是生成的HTML,而是它将执行的JS…好吧,在研究之后,我找到了答案。我在rails 3.0.8上,escape_javascript有一个bug。更新了rails,运行良好。谢谢你们的帮助!
$(div_name).html('<%= escape_javascript(render(:partial => "shared/share", :locals => {:twitter_account    => @twitter_account}))%>');