<%=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
怎么可能?可能有什么不对?
答案 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时,它会调用两次