Rails 3.1 - 两次调用AJAX请求

时间:2011-11-24 15:56:11

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

<%=link_to 'Add note', {:controller => 'home', :action => 'add_note', :id =>user.id}, :remote => true%>

点击此链接后,名为 _add_note.html.erb 页面(通过JS add_note.js.erb )。这个文件看起来像这样:

$('div#ajax_div').html("<%= escape_javascript(render('add_note')) %>");

看起来不错,点击上面的链接后加载到 ajax_div 文件内容 _add_note.html.erb

但问题是,点击我在Firebug中看到的链接后,ajax调用被处理两次。

GET /home/add_note?id=39 200 OK 601ms   
GET /home/add_note?id=39 200 OK 1154ms

怎么可能?可能有什么不对?

2 个答案:

答案 0 :(得分:4)

这可能与资产管道有关,尽管asset pipeline documentation在这里并不是很有用。您可能在资产路径中包含两次应用程序* .js。*。运行:

$ find . -name "application*.js*"
./app/assets/javascripts/application.js
./public/assets/application.js
./public/assets/application-5f5e14d05ab99cac084b66cb87bbeec8.js
./public/assets/application-5f5e14d05ab99cac084b66cb87bbeec8.js.gz
./public/assets/application-95fca227f3857c8ac9e7ba4ffed80386.js.gz
./public/assets/application-95fca227f3857c8ac9e7ba4ffed80386.js
./public/assets/application.js.gz

如果您看到上面的图片,请从public/assets删除生成的资源。

答案 1 :(得分:0)

当你包括两次js时,它会调用两次