我遇到了rails 3.2.8和ajax回调的问题......似乎那些根本没有触发......我尝试用Jquery代码绑定(我可以在chrome工具箱上看到js脚本)我甚至试过把:success => link_to行上的'alert(“bla”)',但它仍然没有做任何事情......控制器工作,因为我的行实际上被删除了...但是无法绑定到回调!请帮忙!
以下是我的观点:
<td><%= link_to 'Destroy', pet, :method => :delete, :remote=>true, :class => 'delete_pet' %></td>
这是我的控制器动作
def destroy
@pet = Pet.find(params[:id])
@pet.destroy
respond_to do |format|
format.html { redirect_to(pets_url) }
format.js { render :nothing => true }
end
end
这是我的js代码:
jQuery(function($) {
$('.delete_pet').bind("ajax:before", function(){alert('bla2');})
.bind("ajax:success", function(){alert('bla2');})
.bind("ajax:failure", function(){alert('bla2');})
.bind("ajax:complete", function(){alert('bla2');});
});
答案 0 :(得分:0)
替换
format.js { render :nothing => true }
与
format.json { render :nothing => true }
并替换
<%= link_to 'Destroy', pet, :method => :delete, :remote=>true, :class => 'delete_pet' %>
带
<%= link_to 'Destroy', pet, :method => :delete, :remote=>true, 'data-type'=>'json', :class => 'delete_pet' %>
答案 1 :(得分:0)
我遇到了respond_to
块的类似问题。我通过检查request
暂时解决了这个问题。例如,您的代码如下所示:
def destroy
@pet = Pet.find(params[:id])
@pet.destroy
if request.xhr?
# the request was received via an AJAX request
render :nothing => true
else
redirect_to(pets_url)
end
end
不像resond_to
块一样优雅,但似乎可靠地按预期工作。
答案 2 :(得分:0)
问题在于我的application.js我手动包含了一个jquery文件......就像这样..
//= require jquery-ui-1.8.23.custom
对我感到羞耻!