我有一个简单的表格:
= form_for(posts_path, :id => "new_post", :remote => true) do
= text_field_tag "post[input]"
= submit_tag "Post!"
我已将回调绑定到ajax:success
event:
$("form#new_post").bind("ajax:success", function(xhr, data, status){
alert("Post Created!");
});
当我点击Post!
按钮,Post Created
过来twice. Why?
我正在使用 Rails 3.1,默认情况下使用 jquery-ujs。
那是因为你的页面正在加载jquery_ujs
当预编译资产存在时,在开发模式下编码两次/public/assets
.
在开发模式下,JavaScript 请求使用单独的标签加载:jquery
, jquery_ujs.js
, myscripts.js
最后applications.js
。预编译时出现问题application.js
存在并使用自/public/assets
- 它包含所有以前文件的编译。这是由assets:precompile
耙任务。
解决办法就是去掉/public/assets
那么开发目录application.js
被使用(来自/app/assets/javascript
)其中不包括以前的文件。
一般不使用assets:precompile
rake 开发任务。
Update
Adding config.serve_static_assets = false
to development.rb
也为我解决了问题,无需担心/public/assets
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)