escape\u javascript在Rails中无法正常工作
我在使用不引人注目的javascript时遇到了问题。在我的TwitterAccountController中,我有: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
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=✓ />
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}))%>');