所以一切正常。但是如果用户打开了firebug的控制台,他们就会看到一个错误。 :d
发送我的AJAX时:
$(".remove_qf").live("click", function(){
$.ajax({type: "POST", url: $(this).attr("href"), data: { '_method': 'delete' }, dataType: "script"});
return false;
})
我的控制器发射它:
def destroy
@quick_fact = @organization.quick_facts.find(params[:id])
@quick_fact.destroy
end
触发视图并在500:
上输出错误Missing template quick_facts/destroy.erb in view path app/views:vendor/plugins/rails-ckeditor/app/views
奇怪但是,因为我不需要破坏视图,所以我不应该添加任何代码到我已经告诉它渲染假的代码。我之所以这么说,是因为我有类似的东西在同一个前提下工作。
任何人都知道可能导致这种情况的原因吗?
更新
的routes.rb
map.resources :organizations,
:collection => {:live_validation => :post, :search => :get, :send_invitation_code_request => :post} do |organization|
organization.resources :quick_facts
答案 0 :(得分:1)
我不是这方面的专家,但是,我认为1.)你需要在你的ajax调用中添加一个处理程序来确定删除是否成功& 2.)您可能需要从控制器的销毁操作中添加某种成功状态消息。
答案 1 :(得分:1)
以下为我解决了同样的问题。
respond_to do |format|
format.js { head :ok }
end
我不确定这是否比使用render :nothing => true
或render :text => ""
更好。